这是一个用FFmpeg实现的录屏功能,其中包括录制屏幕和声音,录制后的视屏为MPEG4 音频为AAC。主要程序就是创建了三个线程(ScreenCapThreadProc、AudioCapThreadProc、OutPutThreadProc)分别用来捕获桌面图片、捕获声音,将捕获到的桌面图片和声音写成一个视频文件。
ScreenCapThreadProc线程函数:
DWORD WINAPI ScreenCapThreadProc(LPVOID lpParam)
{
AVPacket *packet = (AVPacket *)av_malloc(sizeof(AVPacket));
int got_picture;
AVFrame *pFrame;
pFrame = av_frame_alloc();
AVFrame *picture = av_frame_alloc();
int size = avpicture_get_size(pFormatCtx_Out->streams[VideoIndex]->codec->pix_fmt,
pFormatCtx_Out->streams[VideoIndex]->codec->width, pFormatCtx_Out->streams[VideoIndex]->codec->height);
picture_buf = new uint8_t[size];
avpicture_fill((AVPicture *)p