MPEG4码流分析(1)

        先推荐一个非常好用的码流分析工具:Elecard Stream Analyzer。分析结果可以在图片中看到。

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

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

1、视频对象序列VOS。

2、VO(Video Object):视频对象,它是场景中的某个物体,最简单的情况下就是矩形框,它是有生命期的,由时间上连续的许多帧构成。

3、VOL(Video Object Layer):视频对象层,VO的三种属性信息在该层进行编码,该层主要用来扩展VO的时域和空域分辨率,实现分成编码。

4、GOV:视频对象平面组,由视频平面组合,是可选成分。视频对象层即可以由VOP直接组合,也可以由GOV组合而成。

5、VOP(Video Object Plane):视频对象平面,它可以看作是VO在某一时刻的采样,即一帧VO。

MPEG4码流分析(1)_第1张图片

MPEG4码流分析(1)_第2张图片

                                                            图1

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

MPEG4码流分析(1)_第3张图片

                                                      图2



MPEG4码流分析(1)_第4张图片

                                               图3


你可能感兴趣的:(MPEG4码流分析(1))