mpeg4 vol header文件格式分析
来源:互联网 发布:linux下启动oracle 编辑:程序博客网 时间:2024/05/17 23:42
转自:http://blog.csdn.net/lius1984/archive/2009/06/04/4241856.aspx
最近在做一个3gp/mp4播放器, 用ffmpeg从3gp/mp4文件中demux出mpeg4的raw data, 无法直接用来解码,需要在第一帧之前加上vol header. 我照搬了ffmpeg的encode_vol_header的实现,很多文件(尤其是QVGA尺寸的文件)解码不了。
最后得知,这个vol根本不用自己生成,只要把avctx->extradata里面的长度为avctx->extradata_size的数据copy到你的第一帧前面就可以了。
虽然ffmpeg有现成的vol header,还是顺便总结一下mpeg4 sp的文件格式。参考文档 《mpeg-4-14496-2》6.2节。 用UE打开一个.m4v文件,开头44字节就是vol header. 比特流的句法如下:
a) 全局配置信息,表征解码器准备解码的整个视频对象组 VisualObjectSequence()
b) 对象配置信息,表征单个视频对象。VisualObject().
c) 对象层配置信息, 表征一个视频对象的层 VideoObjectLayer().
d) ES流数据,包含了整个视频对象层里的数据。
相关代码在ffmpeg/libavcodec/h263.c的里mpeg4_encode_visual_object_header和mpeg4_encode_vol_header。有几个点需要注意。
-先写vos和vo header, vos的起始码是0x1B0, vo的起始码是0x1B5
-profile_and_level_indication的值,simple profile一般值为0x3
- vol的开头是00 00 01 00 00 00 0120
-vol_width和vol_height与图像尺寸一致,从=(*FormatCtx).streams[videoStream]->codec里可得。
- 不到8位的需补零
顺便推荐一个mp4ui的软件,他可以从3GP和MP4文件中DUMP出音频和视频,很好用哦。 而且是开源的,对分析3GP格式很有帮助!
- mpeg4 vol header文件格式分析
- mpeg4 vol header文件格式分析
- MP4 文件格式 -- MPEG4-Part14
- [mpeg4]mpeg4码流分析
- html header文件格式类
- MPEG4码流简单分析
- MPEG4码流简单分析
- MPEG4码流简单分析
- MPEG4码流格式分析
- MPEG4码流格式分析
- MPEG4码流简单分析
- MPEG4码流简单分析
- MPEG4码流格式分析
- MPEG4码流简单分析
- 关于MPEG4 码流(mpeg4 raw data)的格式分析
- 关于MPEG4 码流(mpeg4 raw data)的格式分析
- 关于MPEG4 码流(mpeg4 raw data)的格式分析
- MPEG4
- 感受CSDN
- [全程建模]extend关系的深入讨论分析
- window服务uninstall后 无法实现删除
- 从SERVER返回数据中提取数据
- 由一道笔试题想到的:原码反码和补码
- mpeg4 vol header文件格式分析
- Ghost误操作之后--硬盘维护工具Diskgenius
- java包名的约定:PO VO TO BO DAO POJO
- $在COS的用法
- oracle job
- 利用JQuery的load函数动态加载页面 以及jQuery动态加载页面和请求所返回的数据
- 将截断字符串或二进制数据。语句已终止。
- 【转载】傅里叶变换和拉普拉斯变换的意义
- spring quartz