热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MPEG4码流分析(1)

先推荐一个非常好用的码流分析工具:ElecardStreamAnalyzer。分析结果可以在图片中看到。第一步,先说说如何对获得MPEG-4编码的视频。我的方法是从

        先推荐一个非常好用的码流分析工具: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。


                                                            图1

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

                                                      图2




                                               图3



推荐阅读
author-avatar
手机用户2502861123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有