OGM 文件的分析与模拟播放
--李巨民 E10414042
一、 选题依据
OGM 实际上是一种新型多媒体封装格式,也称多媒体容器 (Multimedia Container)。它
不同于 DivX、XviD 等视频编码格式,也不同于 MP3、Ogg 等音频编码格式。OGM 只是为
这些音、视频提供外壳的“组合”和“封装”格式。换句话说就是一种容器格式,常见的
AVl、VOB、MPEG、RM 格式其实也都属于这种类型。但它们要么结构陈旧,要么不够开
放,这才促成了 OGM 这类新型多媒体封装格式的诞生。
OGM 作为一个全新的多媒体容器,在视频上可以使用 DivX/XviD 的编码画面,音频上
可以使用 ogg vorbis/AC3/(CBR/ABR/VBR)MP3 等,文本上可以使用 srt 字幕,支持 Chapetr。
尤为重要的一点是 OGM 可以方便的嵌入多个音轨和字幕,然后只要安装了相应的解码器,
就可以无困难的播放,OGM 在索引上要远快于 AVI,拖动进度条再也不用像 AVI 情况下等
上好一阵子,同时 Chapter 又可以把 DVD 中的章节信息完美载入。而且在声画同步上 OGM
做得更好,不用出现某些 AVI 情况下画面要快进才能赶上声音的场面,同时在制作上还能
进一步节省为同步而占用的空间。
同时 OGM 是作为开源项目的一项被开发出来的,因此对这种媒体格式的使用是免费
的,相对于其它的编码格式,仅是在这一点上就受到了广大的支持。OGM 文件在功能方面
同样支持基于文件的流和基于传输的流,也就是说它可以完全满足现在网络对流媒体的需求。
同样 OGM 开放的格式,也使它更易于改进,可以在很大的程度上满足未来对媒体封装的
要求。
OGM 文件在国内还没有真正的盛行,但相信其优点会吸引越来越多的人加入到 OGM
的行列,因此对 OGM 的研究是有非常有意义的而且更符合当前媒体发展的方向。
二、研究方案
研究内容
1、 对 OGM 文件的分析。
我们知道,对音频、视频、字幕这样的媒体文件,大多是由帧(frame)或(packet)
这样的单位所组成的,在将这样的媒体文件封装进一个 OGM 文件之中的过程中,需要对
每个媒体文件中的帧和包进行封装,封装的过程是这样的,首先将帧和包按照段(一个逻辑
单位,最长为 255 字节,且仅在每个包或帧的末尾才会出现小于 255 字节的段)进行逻辑
上的划分(并不是真正的将它们进行切割),划分的目的是为了以后的封装。然后将划分好
的段装进一个个 page 中去(每个 page 可以容纳的最多段数为 255 个),并在 page 的开始
位置加上相应的头,在这个头中会按照一定的结构封装进相应的信息来表明这个 page 的身
份,媒体的类型,比特率,偏移,段的数量,校验码等信息;这样每个被分割、封装后的媒
体文件在 OGM 文件中就被称为逻辑流,有多少个不同的媒体文件被封装入 OGM,在 OGM
中就有多少个逻辑流。
现在我们对 OGM 文件有了一个初步的认识,OGM 分析的目的就是从一个完整的 OGM
文件中得到它所封装的文件的个数、类型、长度等信息,并从组成 OGM 文件的一个个 page
中将原来的媒体信息解析出来,交由模拟器来显示,还可以将分析得到的媒体信息再次还原
为原来的媒体文件。