参考链接: 最简单的基于FFMPEG的视频编码器(YUV编码为H.264)
恢复熟悉并提交ffmpeg相关测试用例代码
恢复并熟悉图像格式yuv、rgb相关基础知识
恢复并熟悉mpeg4、h.264、mp3等音视频压缩编码格式
待解决问题:
D:\work\demo\record_broadcast工程中用到了48字节的mpeg4 encoded data header
是否完善为判断vos(video object segmentation)到
第一个vop(video object plane/frame)之间的字节数,一般为55字节,需要做判断
可以参考:http://blog.csdn.net/axdc_qa_team/article/details/4042762
mpeg4 encoded data参考:
QtDemo\enc_dec_ffmpeg\appmpeg4dec_zwj\tests\640X480.cmp
QtDemo\enc_dec_ffmpeg\appmpeg4dec_zwj\tests\test_mpeg4_352X240.cmp
6.2 查看移动硬盘QtDemo\enc_dec_ffmpeg\appmpeg4dec_zwj,查看是否dec的第一步为对vos的解码,
以期获得解码vop后,得到的视频帧(图像)的各种参数:width,height,widthbytes,"framerate" 如果上述猜测成功,那么对视频解码的理解就能解释通畅了。
6.3 rgba(32 bits)有字节对齐问题,yuv420应该也有4字节对齐问题。
参考ie收藏夹media codec "yuv格式_字节对齐"和"yuv数据格式"2个网页。 参考例子: 摄像头记得应该是采集的yuv420格式的视频帧,是否有字节对齐。 QtDemo\enc_dec_ffmpeg\appmpeg4dec和QtDemo\enc_dec_ffmpeg\appmpeg4enc是否有字节对齐例子
x被n整除公式:
( (x + (n-1)) >> log2(n) ) << log2(n) -> ((x+3) >> 2) << 2
(x + (n-1)) / n * n -> (x+3) / 4 * 4
yuv420的widthbyte是否为: widthbyte = (width*3/2 + 3) / 4 * 4; 或: widthbyte = ((width*3/2 + 3) >> 2) << 2;