Qt利用avilib实现录屏功能,生成avi文件

环境:

Qt + vs2013 + avilib
demo下载:https://download.csdn.net/download/birenxiaofeigg/12087607

界面

开始录制:
在这里插入图片描述
结束录制:
在这里插入图片描述

新建.avi文件

AVI_open_output_file(char* filename);//打开avi文件,不存在,即创建

设置视频参数

void AVI_set_video(avi_t *AVI, int width, int height, double fps, char *compressor);

AVI:为打开avi文件的avi_t;width:图像宽度;height:图像高度;
fps:帧率;compressor:视频压缩类型,比如"MJPG",“H264”

例子:

AVI_set_video(hAviHandle,704,576,25, "H264");
AVI_set_video(hAviHandle,704,576,25, "MJPG");

设置音频参数

void AVI_set_audio(avi_t *AVI, int channels, long rate, int bits, int format, long mp3rate);

例子:

AVI_set_audio(hAviHandle, 1, 8000, 16, WAVE_FORMAT_PCM, 128);
//rate*bit/(channels*1000) ?= mp3rate

写视频帧

int  AVI_write_frame(avi_t *AVI, char *data, long bytes, int keyframe); 
//保存一帧图像, keyframe

keyframe 表示是否为关键帧(即是否完整的一帧图像数据, jpg每张都是完整的)

写音频帧

int  AVI_write_audio(avi_t *AVI, char *data, long bytes);

关闭.avi文件

int  AVI_close(avi_t *AVI); //结束保存视频,并会写入文件索引的。

demo下载:https://download.csdn.net/download/birenxiaofeigg/12087607

发布了56 篇原创文章 · 获赞 10 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/birenxiaofeigg/article/details/103903198