MPEG4码流分析之我见

     最近做了MPEG-4编码的视频文件的分析,找资料的时候费了好大的劲,在这里分享自己的一些心得体会,也算对自己工作的一个总结吧。必须先推荐一个非常好用的码流分析工具:Elecard Stream Analyzer。分析结果可以在图片中看到。

  第一步,先说说如何对获得MPEG-4编码的视频。我的方法是从纯视频格式(.yuv)利用软件ffmpeg经过MPEG-4编码得到.m4v文件,这个文件就是我们所需要分析的文件。

      第二步,得到MPEG-4编码的视频后,我们就可以根据图中所示的文件结构再利用ultraedit分析它的码流结构了。MPEG-4编码与MPEG-2编码最大的不同之处就在于它是基于对象的编码,可以合成媒体对象以创建所需的视听场景以及多路传播和同步媒体数据项的位流,以保证它们在传输过程中的服务质量,并能在接收端与视听场景进行交互。先来分析它的层次结构,它可以分为5个层次(对应着图看,非常清楚):

1. 视频对象序列VOS

2. 视频对象VO

3. 视频对象层VOL

4. 视频对象平面组GOV

5. 视频对象平面VOP(也就是所谓的“帧”)

 

 图1

 

 

 

      然后呢,它的各个层次的内容都是用start_code作为开头的,而且值得注意的是:MPEG-4编码的start_code与MPEG-2编码有一定的区别。常用的start_code在图2中列出。举个例子吧,一个帧的start_code是 0x00 00 01 B6, 再截张ultraedit中十六进制分析的图给大家看看就肯定能明白了。

        图2

 图3

 

      哈,第一篇博客,写得不太好,大家看了多包涵。

 

posted @ 2009-12-11 22:34  joesay  阅读(3358)  评论(0编辑  收藏  举报