opencv+ffmpeg+Qt h264录制

opencv+ffmpeg+Qt h264录制

主要使用以上三个库录制h264
1. opencv 采集视频
2. ffmpeg 录制视频
3. Qt 界面

环境

vs2010+opencv2.4.8+Qt4.8.4+FFmpeg version: 2015-08-25

说明

其中主要是把Iplimage 转为yuv420用于录制视频。ffpemg自带decoding_encoding.c有视频录制代码。录制完成后可能会感觉视频总是在快进,可能是帧率和摄像头采集的帧率不匹配,降低 试试
AVRational avtmp = {1,25};//25 /* frames per second */

另外就yuv的转换,这里录制选择的yuv420
RGB转YCbCr公式
Y = (77 * R(d) / 256) + (150 * G(d) / 256) + (29 * B(d) / 256)
Cb = - (44 * R(d) / 256) - (87 * G(d) / 256) + (131 * B(d) / 256) + 128
Cr = (131 * R(d) / 256) - (110 * G(d) / 256) - (21 * B(d) / 256) + 128
把Iplimage的rgb读出来按照上面公式计算出YCrCb,再赋值给ffmpeg,CbCr隔行取。

问题

  1. 可能提示找不到h264编码器,是否注册avcodec_register_all();,还是不行安装一些编解码器吧。http://ffmpeg.org/faq.html#FFmpeg-does-not-support-codec-XXX_002e-Can-you-include-a-Windows-DLL-loader-to-support-it_003f
  2. 播放速度,调整录制帧率

代码

http://download.csdn.net/detail/gaobobo138968/9674123

猜你喜欢

转载自blog.csdn.net/gaobobo138968/article/details/53048626