(通信与信息系统专业论文)iso基媒体文件格式及其avs视频应用扩展.pdf_第1页
(通信与信息系统专业论文)iso基媒体文件格式及其avs视频应用扩展.pdf_第2页
(通信与信息系统专业论文)iso基媒体文件格式及其avs视频应用扩展.pdf_第3页
(通信与信息系统专业论文)iso基媒体文件格式及其avs视频应用扩展.pdf_第4页
(通信与信息系统专业论文)iso基媒体文件格式及其avs视频应用扩展.pdf_第5页
已阅读5页,还剩47页未读 继续免费阅读

(通信与信息系统专业论文)iso基媒体文件格式及其avs视频应用扩展.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

| s 0 基媒体文件格式及其a v 8 视频应用扩展 摘要 随着近年来计算机技术和网络技术的快速发展,多媒体业务在人 们的学习、工作和生活中占据了越来越重要的地位。在其中最主要的 音视频业务中,媒体文件存储格式是非常关键的一环。视频流本身只 能顺序播放,不能进行随机访问和网络流化播放,文件封装则是为解 决这些问题而设计的。 本文详细介绍了i s o 基媒体文件格式,该格式定义在m p e g 4 标准中,由m o v 格式发展而来。从物理结构来说,文件是面向对象 的,各原子具有明确的层次关系;从逻辑结构来说,文件分为不同的 轨道,主要是媒体轨道和提示轨道,分别用于回放和流化。文件中可 以存在多条音视频流,不会互相干扰;可以存在多条提示轨道对应一 条媒体轨道,以适应不同的网络环境,并且不会对本地回放造成影响。 对于被存储的媒体来说,存储方式是与传输协议无关的,任何所 需的分组方式都可以存储为一条的提示轨道;对于流媒体服务器来 说,数据流的发送又是与媒体类型无关的,只要按照对应的提示轨道 中的分组信息进行传输。这是i s o 文件格式最重要的两个特性。文中 在第二章详细阐述了各主要原子的结构和用途,并在最后通过对本地 回放和网络流化过程的描述讲解了如何综合使用原子中的信息,提高 效率。 目前,i s 0 文件已经扩展出了m p 4 ,a v c ,m p e g 一2 1 ,j p e g , 3 9 p p 等文件格式,并且制订出了相应的规范。本文将讲述如何使用 i s o 文件封装a v s 视频流,加速我国流媒体标准的研究步伐。 a v s 标准是我国具备自主知识产权的第二代信源编码标准,视频 标准分为a v s p 2 和a v s - p 7 两个部分。这两种视频流采用了不同的 编码方式以及系统层结构,在进行文件封装时需要根据各自的特点区 别对待。 a v s p 7 使用的是较新的n a l 单元并列结构,a v s - p 2 使用的是 传统的层次结构。文中阐述了如何通过对视频流的处理,将a v s p 2 的系统层结构转换成与a v s p 7 相同的n a l 单元结构。使用这样的 转换使a v s 的两种视频流能够使用相同的存储和分组方式。 在本文的最后一章中,分别对h 2 6 4 、a s p 2 、a v s - p 7 三种视 频流进行i s o 文件封装,列出各自的有效数据存储率进行对比,并在 对比中较为深入地探讨了i s o 文件格式的利弊。 关键词:i s o 基媒体文件格式文件封装存储本地回放流化a v s i s ob a s em e d i af i l ef o r m a ta n di t s e x t e n s i o ni na v sv i d e os t r e a m a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to fc o m p u t e ra n dn e t w o r kt e c h n i q u ei n r e c e n ty e a r s ,m u l t i m e d i aa p p l i c a t i o np l a y sm o r ea n dm o r ei m p o r t a n tr o l e i np e o p l e sl i f e a u t oa n dv i d e oa p p l i c a t i o ni st h ep r i m a r yo n e ,i nw h i c h t h em e d i af i l es t o r a g ef o r m a ti sa k e yp a r t a si sw e l lk n o w n ,p u r ev i d e o s t r e a mo n l yc a nb ep l a y e do r d e r l y , a n dc a n tb er a n d o ma c c e s s e do r p l a y e di nn e t w o r k f i l ef o r m a ti sd e s i g n e dt os o l v et h e s ep r o b l e m s t h i st h e s i si n t r o d u c e st h ei s 0b a s em e d i af i l ef o r m a ti nd e t a i l , w h i c hi sd e f i n e di nm m e g 4s t a n d a r da n dd e r i v e df r o mm o v f i l ef o r m a t i np h y s i c a ls t r u c t u r e ,t h i sf o r m a ti so b j e c t - o r i e n t e d ,e v e r yo b j e c t sc a l l e d a t o m s h a v et h e i rs p e c i f i cl a y e r s ;a n di nl o g i cs t r u c t u r e ,f i l ei sc o m p o s e d w i t ht r a c k s 。m a i n l ym e d i at r a c k sa n dh i n tt r a c k s ,w h i c ha r eu s e dt o p l a y b a c ka n ds t r e a mi nn e t w o r k t h e r ec a nb es e v e r a la u d i oa n dv i d e o t r a c k si no n ef i l ew i t h o u ta n yi n t e r f e r e n c e a l s ot h e r ec a nb em o r et h a n o n eh i n tt r a c k st os e r eo n em e d i at r a c k ,w h i c hw i l ln o ta f f e c tt h el o c a l p l a y b a c k s i m i l a r l yt h em e d i ad a t a s t o r e d a si ti si nap r o t o c o l - u n a w a r e f a s h i o n ,c a nb es t r e a m e dw i t ha n yo n eo fi t sh i n tt r a c k s t h ep r o t o c o l i n f o r m a t i o ni sb u i l ti ns u c haw a yt h a tt h es t r e a m i n gs e r v e r sn e e dt ok n o w o n l ya b o u tt h ep r o t o c o la n dt h ew a yi t s h o u l db es e n t ;t h ep r o t o c o l i n f o r m a t i o na b s t r a c t sk n o w l e d g eo ft h em e d i as ot h a tt h es e r v e r sa r e ,t oa l a r g ee x t e n t ,m e d i a - t y p ea g n o s t i c t h e ya r et w oi m p o r t a n tc h a r a c t e r i s t i c s i ni s of i l ef o r m a t i nt h es e c o n dc h a p t e r , a 1 1m a i na t o m s s t r u c t u r ea n d u s a g ea r es e tf o r t h t h e n i t se x p l a i n e dh o w t ou s ei n f o r m a t i o n si na t o m s v i al o c a lp l a y b a c ka n dn e t w o r ks t r e a m i n gp r o c e s s a tp r e s e n t ,m a n yf i l ef o r m a t sa r ed e r i v e df r o mi s 0f i l ef o r m a ta n d d e f i n e di ns p e c s ,s u c ha s 4 ,a v c ,e g - 21 ,j p e c 3g p pa n de t c m s t h e s i sw i l le x p l a i nh o wt oe n c a p s u l a t ea v sv i d e os t r e a m ,t oa c c e l e r a t et h e d e v e l o p m e n to fs t r e a m i n gm e d i as t a n d a r do fc h i n a a v si st h ef u l l yi n t e l l e c t u a lp r o p e r t yo fs e c o n dg e n e r a t i o ns o u r c e c o d i n g d e c o d i n gs t a n d a r d ,o w n e db yc h i n a i t sv i d e os t a n d a r dh a st w o p a r t s ,a v s - p 2a n da v s p 7 t h e s et w ok i n d so fv i d e os t r e a ma d o p t v a r i o u sc o d i n gm o d ea n ds y s t e m l a y e rs t r u c t u r e ,s ot h e yw o u l db e h a n d l e dd i f f e r e n t l yi ne n c a p s u l a t i o n a v s - p 7u s e sn a lu n i ts t r u c t u r e ,w h i l ea v s p 2u s e st r a d i t i o n a l l a y e rs t r u c t u r e am e t h o di si n t r o d u c e dt oc o n v e xa v s p 2l a y e rs t r u c t u r e t on a lu n i ts t r u c t u r ea sa v s p 7 a f t e rt h ec o n v e r s i o n t h e s et w ov i d e o s t r e a m sc a nu s et h es a m es t o r a g ea n dp a c k e tf o r m a t i nt h el a s tc h a p t e r , t h r e ev i d e os t r e a m s ,h 2 6 4 ,a v s p 2a n da v s p 7 , a r ee n c a p s u l a t e dw i n li s of i l ef o r m a t e a c hs t o r a g er a t i oo fe m c i e n td a t a i sc o m p a r e d ,a n dt h ea d v a n t a g e sa n dd i s a d v a n t a g e so fi s of i l ef o r m a ta r e d i s c u s s e dd e e p l y k e yw o r d s :i s ob a s em e d i af i l e f o r m a t ,f i l ee n c a p s u l a t e ,s t o r a g e , l o c a lp l a y b a c k ,s t r e a m i n g ,a v s 第一章概述 1 1i s 0 文件格式产生的背景 随着近年来计算机技术和网络技术的快速发展,多媒体业务在人们的学习、 工作和生活中占据了越来越重要的地位。 多媒体这一概念包含了多媒体信息和多媒体技术,并以后者居多。所谓多媒 体信息是指集数据、文字、图形、视频和音频为一体的综合媒体信息。多媒体技 术则是将计算机技术与通信传播技术融为一体,综合处理、传输和存储多媒体信 息的数字技术。 在这些种类繁多的多媒体业务中,音视频业务是最主要的。在音视频业务中, 除了实时播放业务外,大多都要将节目按照一定的格式以文件形式存储起来,以 便将来进行节目回放。一些公司和组织根据不同的音视频压缩标准制定了相应的 文件存储格式,下面简单的介绍几个常见的文件格式: a v i :即音视频交错( a u d i ov i d e oi n t e r l e a v e d ) 格式。它是由m i c r o s o f t 公司开发的一种数字音频与视频文件格式,于1 9 9 2 年被m i c r o s o f t 公司推出。a v i 格式允许视频和音频交错在一起同步播放,优点是图像质量好,可以跨多个平台 使用,缺点是体积过于庞大,而且没有限定压缩标准,由此就造成a v i 文件格 式不具有兼容性。 a s f w m v | w m a :a d v a n c e d s t r e a m i n gf o r m a t | w i n d o w sm e d i av i d e o w i n d o w sm e d i aa u d i o ,采用微软自主版权的技术,所以别的厂家无法对其进 行直接解码,只能通过微软提供的s d k 接e 1 调用m e d i ap l a y e r 的播放函数来进 行回放。a s f 使用了m p e g 4 的压缩算法,所以压缩率和图像的质量都很不错。 w m v w m a 是使用微软推出的一种采用独立编码方式并且可以直接在线播放 节目的文件格式。 m p e g :是m o v i n g p i c t u r ee x p e r t sg r o u p ( 运动图象专家组) 的简称,是 一个国际通用的音视频格式,具有良好的兼容性、强大的压缩率和最小的数据损 失。目前m p e g 有三个压缩标准,分别是m p e g 1 、m p e g 2 和m p e g 4 ,另外, m p e g 7 与m p e g 2 1 仍处在研发阶段。确切的说,m p e g 并非是一个独立的文 件格式,而是音视频压缩标准,以m p e g 或m p g 为后缀的文件其实就是根据某个 m p e g 标准压缩出来的视频码流。 m p 3 :m p 3 为m p e gl a y e r3 的缩写,它是一种音频文件存储格式,文 件小而且保有接近于c d 的品质。其中封装的是m p e g 1 或m p e g 2 的音频流, 压缩比例可高达1 :1 0 至1 :1 2 ,相当于以1 2 8 k b p s 至1 1 2 k b p s 的速率传送立体 声信号。 d i v x :这是由m p e g 4 衍生出的另一种视频编码( 压缩) 标准,也即我们 通常所说的d v d r i p 格式,它采用了m p e g 4 的压缩算法同时又综合了m p e g 4 与m p 3 各方面的技术。其画质直逼d v d 并且体积只有d v d 的数分之一,这种 编码对机器的要求也不高,所以d i v x 视频编码技术对d v d 造成威胁最大。 r m r m v b :r e a ln e t w o r k s 公司所制定的音频视频压缩规范称为r e a l m e d i a ,可以根据不同的网络传输速率制定出不同的压缩比率,从而实现在低速 率的网络上进行影像数据实时传送和播放,并且可以在线播放。r m v b 是一种 由r m 视频格式升级延伸出的变速率视频格式,它的先进之处在于r m v b 视频 i , 格式打破了原先r m 格式那种平均压缩采样的方式,在保证平均压缩比的基础上 合理利用比特率资源,就是说静止和动作场面少的画面场景采用较低的编码速 率,这样可以留出更多的带宽空间,而这些带宽会在出现快速运动的画面场景时 被利用。这样在保证了静止画面质量的前提下,大幅地提高了运动图像的画面质 量,从而图像质量和文件大小之间就达到了微妙的平衡。 m o v :美国a p p l e 公司开发的一种视频格式,默认的播放器是苹果的 q u i c k t i m ep l a y e r 。具有较高的压缩比率和较完美的视频清晰度等特点,但是其 最大的特点还是跨平台性,即不仅能支持m a co s ,同样也能支持w i n d o w s 系列。 因此可以看出,由于音视频编码技术的不断发展,压缩编码标准和文件存储 格式逐渐增多。这将使媒体播放器越来越庞大,以便能够对各种文件格式进行解 析。特别是对于在线播放的服务器来说,要支持对各种压缩标准的码流进行分组 发送,所承受的负担是相当巨大的。 所以,文件存储格式的统一已经是迫在眉睫了。 1 2is 0 文件格式简介 为了实现文件格式的统一,m p e g 在m p e g 4 标准的第1 2 部分中提出了i s o 基媒体文件格式( i s ob a s em e d i af i l ef o r m a t ) 。m p e g 成立于1 9 8 8 年,是运动图 像专家组的简称,全称是i s o 砸cj t c l s c 2 9 侧g 1 1 ,即国际标准化组织( t h e i n t e r n a t i o n a lo r g a n i z a t i o nf o rs t a n d a r d i z a t i o n ) 和国际电工委员会( t h ei n t e r n a t i o n a l e l e c t r o t e c h n i c a lc o m m i s s i o n ) 第一联合技术组第2 9 分委会第1 1 工作组,负责数 字视频、音频和其他媒体的压缩、解压缩、处理和表示等国际技术标准的制定工 作,制定的标准推动了v c d 、d v d 、数字电视、高清晰度数字电视等产品的发 展。 i s o 基媒体文件格式标准的全称是i s o c1 4 4 9 6 1 2 :i n f o r m a t i o n t e c h n o l o g y c o d i n go fa u d i o - v i s u a lo b j e c t s p a r t1 2 :i s ob a s em e d i a f i l ef o r m a t ,随 后m p e g 在此基础上制订了m p 4 文件格式i s o i e c1 4 4 9 6 1 4 :m p 4f i l ef o r m a t 和a v c 文件格式i s o i e c1 4 4 9 6 1 5 :a d v a n c e dv i d e oc o d i n g ( a v c ) f i l e f o r m a t ,分别规定了如何在原文件格式的基础上存储m p e g 4 音视频和a v c ( 即 h 2 6 4 ) 视频码流,是对原i s o 文件格式的扩展。 i s o 基本媒体文件格式是在a p p l e 公司的m o v 文件格式上发展而来的,使用较 为复杂、易于扩展的方式封装媒体信息,便于媒体的传输、管理、编辑和播放。 使用该文件格式封装的媒体流可以进行本地或网络上的播放。 从物理结构来说,该文件结构是面向对象的,即可将文件划分成多个对象。 这样的一个对象在文件结构中称为“b o x ”,在其他一些的规范中包括m p 4 文件最 早的定义中也称为“a t o m ”( 原子) ,而用于包含一系列下一层原子的原子称为 “c o n t a i n e rb o x ”( 容器) 。任何原子都起始于4 字节的长度域3 1 4 字节的类型域,长 度域中指示该原子的总字节数,而不同类型的原子都有各自特定的内部结构。 原子的包含关系决定了在文件中的原子具有明确的层次关系,其中两种最高 层、最重要的原子是m e d i ad a t ab o x ( 类型为m d a t ) 弄l m o v i eb o x ( 类型为m o o v ) , 前者用于存储媒体数据或指导服务器分组发送这些数据的信息,而后者提供对这 些数据的描述信息,为前者的播放和传输提供便利。 在逻辑上,文件由多条轨道组成:系统轨道( 只存在于封装m p e g 4 音视频 的文件中,即m p 4 文件) 、媒体轨道( m e d i at r a c k ) 和提示轨道( h i n tt r a c k ) 。媒体 2 轨道存储的是媒体数据,对应于一条视频序列或音频序列;提示轨道则包含对一 个媒体轨道中序列的分组方案,对应的是一条网络上传输的媒体流。每个轨道是 由样本所组成的,对于媒体轨道来说,样本是时间上相邻的一系列视频帧或音频 帧:对于提示轨道,样本是对媒体轨道中相应样本分组的一个或多个数据包。总 的来说,不能存在具有相同时间戳的多个样本。 下面两幅图分别表示了一个典型韵不包含提示轨道的i s o 文件和一个典型的 包含提示轨道的i s o 文件的组成结构: 图i - i 不包含提示轨道的i s o 文件 图i - 2 包含提示轨道的i s o 文件 在图i - i 中,文件仅仅包含两个媒体轨道,分别对应一条视频序列和一条音 频序列,该文件只能进行本地播放。图1 2 中的文件包含一个视频媒体轨道和一 个对应的提示轨道,则该视频文件可以进行本地播放,也可以利用提示轨道进行 网络上的流化播放;此外,如果该文件再加入一个配套的音频媒体轨道以及相对 应的提示轨道,则音视频两条流都可以同时在网络上传输。 1 3 性能特点 我们知道,任何一个媒体序列都可以直接用于解码播放,那么为什么要使用 文件按照规定的格式将其封装起来呢? 如果人们观看视频或者收听音频都是从头播放到尾,而且无所谓音视频的同 步关系的话,确实就没有这个必要了。但如果进行快进、快退或拖动时间轴随机 访问某- n 的音视频帧时,播放器就需要从当前位置或序列的起始位置开始逐帧 搜索,这样无疑会增加播放器的负担,也同样可能花费不少的时间,给大家欣赏 节目带来极大的不便。特别是时间比较长的节目,若要搜索到片尾部分,这样的 播放方式就非常的低效了。而且媒体序列不能直接在网络上进行播放,这些难题 都是需要文件封装解决的问题。 1 3 1 对音视频数据的随机访问 正如上一节说提到的,m e d i ad a t ab o x 中存储的是媒体数据以及指导分组的 信息,而m o v i eb o x 中存储的是描述信息。媒体序列进行播放时,播放器首先从 描述信息中了解该序列的编码方式,然后调用相应的解码器从m e d i ad a t ab o x 中读取媒体数据进行解码。 这是比较简单的顺序播放方式,体现不出文件封装的优势。但在非顺序播放 方式下,例如快进、快退或随机访问某一帧时,文件封装的优势将会是非常明显 的。归纳这些操作的特点,就是都需要顺序或逆序跳过一段数据到达某一指定的 帧进行即时解码。这时,如果播放器能知道这_ 帧数据所在的位置,就可以避免 低效的搜索过程,直接定位到该位置进行解码,这样所消耗的时间是几乎不会被 察觉的。按照这个思路,i s o 文件在封装媒体序列的时候就在m o v i eb o x 中记录 下了音视频帧在整个文件中的绝对偏移量以及每一帧的数据量。 然而,这还不足以使播放器进行随机访问。当播放器定位到某一帧,有可能 发现该帧不能即时解码,比如p 帧或b 帧。因此,i s o 文件在封装的时候还在 m o v i eb o x 中的s y n cs a m p l eb o x ( s t s s ) 记录下了所有的随机访问点,可供播放 器选择,对音视频数据的随机访问提供了真正有力的支持。 1 3 2 对音视频对象的编辑插入、删除和修改 正因为文件记录了音视频帧的位置,使得对每一帧的编辑也更加方便了。文 件的管理者和使用者可以在m e d i ad a t ab o x 中任意两帧之间插入新的帧、删除 或修改某些帧,但是需要在m o v i eb o x 中修改相应的信息,例如总帧数、每帧的 位置、长度、节目总长等等。因此这种格式的文件在进行节目剪辑和拼接的时候, 是非常方便的。 1 3 3 轨道中数据存放的灵活性 在以上内容中,m e d i ad a t ab o x 和m o v i eb o x 总是成对出现的,给人的印象 是这两个最顶层的原子总是同时出现在一个i s o 文件中,其实不然。在i s o 文 4 件中,m o v i eb o x 是必须出现的,它将给播放器提供必要的媒体信息,而m e d i a d a t ab o x 中的媒体数据则可以存在于另一个i s o 文件中,甚至是一个非i s o 格 式的文件中,这个文件是由m o v i e b o x 中一个特定的u r l 来指定的。 在这种情况下,播放器将从文件外部来提取媒体数据。这种方式的好处在于, 如果很多文件都要包含同一个媒体序列,则不需要所有这些文件都拷贝一份这样 的序列在文件内部,只要将u r l 指向这个包含该序列的文件即可。这样就可以 避免过多的冗余数据,大大的节省了硬盘空间。 1 3 4 高效、低开销的流化能力 当文件需要在网络上进行播放的时候,就需要将音视频序列在网络上进行流 化传输。流化,顾名思义,就是将媒体数据按照解码顺序在网络上以数据流的形 式传送到客户端,使播放器持续接收新的数据进行解码,显示视频画面或者播放 声音。 但是流化的过程远没有这么简单,并非直接将媒体序列直接发送出去。以 i n t e r n e t 为例,应用层数据的传输需要经过下面各层的封装,添加一些额外的 开销进去。在1 - 3 图中,左图显示了媒体存储的方式,包括i s o 文件格式、m p 4 文件格式和a v c 文件格式,右图显示了这些文件在i p 网络上传输所需要的各层 协议:信令是通过s d p r t s p 在t c p 层上进行传输的,提供的是比较可靠的传输 方式;数据是在经过应用层负载格式、r t p 和u d p 多层封装之后进行发送,属于 不可靠的传输方式。 m e d i as t o r a g em e d i at r a n s p o r t 图1 3 媒体的存储与传输系统结构 m e d i a d e s c r i p t i o n c o n t r o l 以上的整套存储和传输系统是i s m a 在2 0 0 5 年4 月所提出的流媒体总体架构。 i s m a 全称为i n t e r n e ts t e a m i n gm e d i aa 1 1 i a n c e ,即“互联网流媒体联盟”,是 国际流媒体管理的权威机构。其宗旨为促进流媒体开放标准在视频、音频、互联 网协议等领域的采纳与使用,以其先进、开放性在国际音视频领域享有很高的威 望。i s m a 在流媒体管理上拥有多年经验,其成员包括i b m 、思科、苹果电脑、飞 利浦、杜比实验室、法国电信等业界巨头,在专利管理及技术产业化上已经形成 了一套成熟体系。 在传输系统中,u d p 、t c p 和i p 层的格式相对比较固定,传输时需要附加的 数据主要是针对较上层协议。在i s 0 文件的提示轨道中提供了这些信息,指导服 务器如何生成信令,以及如何将媒体轨道中的媒体数据封装成一个个r t p 数据 包,这被证明是非常高效的传输方式。 5 1 3 5 多种流化传输方案 当一个媒体轨道中的数据需要在网络上传输的时候,就必须要有一个相对应 的提示轨道来支持。但是,如果媒体数据有可能在多种网络中传输的时候,一个 提示轨道就无法实现了。因此,i s o 并没有规定媒体轨道和提示轨道是一一对应 的,任何一个媒体轨道都可以有多个提示轨道通过各自的t r a c kr e f e r e n c eb o x ( t r e f ) 与之相关联。这样,当媒体数据需要在网络上传输的时候,服务器可以 选择相关联的多个提示轨道中与该网络状况最匹配的方式传输。 6 第二章 is 0 文件格式详解 上一章简要的介绍了i s o 文件格式的特点,本章将从文件结构的设计思路入 手详细讲述以上功能是如何实现的。 2 1文件结构设计原理 :作为面向对象的文件结构,该文件可以很轻易地被划分为很多个对象。每一 个对象就是一个原子,任何原子都拥有最初8 个字节的相同含义的部分前4 个字节的长度域中记录了整个原子的字节长度,后4 个字节的类型域指示该原子 的类型。 文件的第一个字节就是第一个原子的首字节j 从前4 个字节的长度域中可以 知道第一个原子的长度,并定位第二个原子,再从第二个原子的长度域定位第三 个原子,以此类推,很方便就能找到最顶层的所有原予。如果顶层原子包含了下 层原子;是一个原子容器,则根据该原子内部的语法结构查找下层原子,进行逐 层解析就可以遍历文件中所有的原子。 查找到所有原子并不是最终目的,要从文件中读取所需的媒体信息就必须进 入到原子内部。,每个类型的原子都有其特定的语法结构,由各种不同类型的域组 成,原子容器还包含了一个或多个下层原子。域中的内容根据域的类型具有不同 的格式和含义,以原子长度域为例,4 个字节用十六进制数表示原子长度,这4 个字节中第一个字节代表最高位的8 d 比特,第四个字节代表最低位的8 个比特; 而在原子类型域中,4 个字节分别以a s c h 码表示4 个字符指示原子类型。 下面是对某m p 4 文件中m o o r 原子及其下层各原子进行解析的实例: s i z e = 8 4 8b y t e s t y p e = m o o v s i z e = 1 0 8b y t e s t y p e = m v h d v e r s i o n :o x 0 0 f l a g :0 x 0 0 0 0 0 0 c r e a t i o n :t h uj u l2 80 7 :5 4 :4 12 0 0 5 m o d i f i c a t i o n :t h uj u l2 80 7 :5 4 :4 12 0 0 5 t i m e s c a l e :9 0 0 0 0 d u r a t i o n :9 0 0 0 0 ( 1 0s e c o n d s ) r a t e :o x o l 0 0 v o l u m e :0 x 1 0 r e s e r v e d ( 1 0 b y t e s ) m a t r i x ( 3 6 b y t e s ) p r e _ d e f i n e d ( 2 4 b y t e s ) n e x t t r a c k :2 s i z e = 2 4 b y t e s t y p e = i o d s 7 s i z e = 6 0 9 b y t e s t y p e = t r a k s i z e = 9 9b y t e s t y p e = u d t a 该m o o r 原子总长8 4 8 字节,除去自身的长度域和类型域共8 字节外,剩下 的部分由下层的4 个原子组成。分别是m o v i eh e a d e rb o x ( m v h d ) ,o b j e c t d e s c r i p t o rb o x ( i o d s ) ,t r a c kb o x ( t r a k ) ,u s e rd a t ab o x ( u d a t ) 。上面只列出了m v h d 原子的详细内容,依次为版本域、标志域、创建时间域、修改时间域、时间精度 域、播放时长域、播放速度域、音量域、保留域、矩阵域、预定义域、新轨道号 域。 在几十种类型的原子中,m d a t 原子和m o o v 原子是最重要的,m d a t 中存储的 是媒体数据,m o o v 中是相应的媒体信息。 m d a t 原子不是原子容器,它只包含媒体数据,以帧为单位进行存储,每帧内 的数据必须是连续存储并可以直接提取还原的。但是各帧并不用按照解码j 顷序存 储,因为每一帧所在的位置都是在m o o v 中记录的,这使媒体数据的管理就更加 灵活了。而且一个i s o 文件中可以没有m d a t 原子,这时将通过m o o v 中一个u r l 指向另一个文件,引用该文件中记录的媒体数据。但必须注意的是,如果i s o 文件中存在提示轨道,则所有的媒体数据都应该出现在m d a t 中,即使是某些与 提示轨道无关的媒体轨道中的数据,也不例外。不过这些媒体数据仍然是可以作 为其他i s o 文件所引用的数据。 m o o v 原子是文件中最大的原子容器,大多数其他原子都是被包含在m o o v 中,分门别类地记录各种不同的信息。在m o o v 原子内部有很明显的层次关系, 分别是:影片层轨道层媒体层样本层。一个样本就是一帧,在样本 层中记录了各帧数据的详细信息,包括随机访问点以及每帧的播放时长、存储位 置、数据长度,样本是在m o o v 原子中最小的管理单元。 在文件结构中将媒体数据和媒体信息分开存储,十分便于媒体的管理。除此 之外,在网络播放中使用的提示轨道也是建立在此结构的基础之上。 在进行网络流化播放时,流媒体服务器发送媒体数据需要对媒体流进行分组 并填充必要的净载头信息。每次对媒体数据进行流化时再进行分组势必会增加服 务器的负担,特别是多条流同时发送的时候。因此有必要将分组信息记录在文件 内部,与媒体信息相关联,服务器在流化时只需读取这些信息即可,不必重复计 算。 但是如果将分组信息直接加入媒体轨道中,则会出现下面两个问题: 加入分组信息时,需要改变媒体码流的存储位置,对数据做大量移动。 本地播放时,在媒体轨道中加入的分组信息会影响媒体信息的读取。 无法支持多个分组协议以适应不同网络,可扩展性差。 为了解决上述两个问题,提出了提示轨道的概念,将用于记录媒体码流的分 8 组信息,包括即时发送数据( 净载头) 和对媒体数据的分组引用信息。这样不论 是增加或是删除提示轨道都不会改变媒体轨道的结构,本地播放时忽略提示轨道 即可;并且可以有多个提示轨道对应于一个媒体轨道,用于对多个分组协议的支 持。 提示轨道描述了如何通过流化协议发送媒体数据,每个协议都有各自的提示 轨道格式,记录在提示轨道的样本描述中。大多数协议都只需要一条样本描述。 服务器在发送某条媒体流时,先找到所有相关联的提示轨道,再从中挑选最合适 的分组协议发送。如果没有与网络状况最匹配的提示轨道,则在所有相关轨道中 比较样本描述中的参数,选择基本匹配或性能较好的协议。 提示轨道通过引用其他媒体轨道的数据和自身的分组信息将媒体流发送出 去,尽管提示轨道的样本格式是由协议所决定的,但主要包含了四个部分:参考 轨道索引( 即相对应的媒体轨道号) ,样本号,引用偏移量和引用长度。当然, 对于某些协议来说,这四个部分中某些量是默认的而不被包含在内。 这样,对于被存储的媒体来说,是与传输协议无关的,任何所需的分组方式 都可以存储为一条的提示轨道;对于流媒体服务器来说,数据流的发送又是与媒 体类型无关的,只要按照对应的提示轨道中的分组信息进行传输。这两个特性极 大地提高了媒体传输的性能。 2 2原子详述 2 2 1 原子的排列规则 要使i s o 文件发挥强大的功能,在文件结构中各类原子的排列所应遵循下面 的规则: f i l et y p eb o x ( f t y p ) 是对整个文件的类型和版本进行说明的原子,这些是 整个文件中很重要的信息,故该原子应该放在所有变长原子之前,例如 m d a t ,m o o v ,u d a t 等。 强烈推荐在原子容器中,把同一层各原子里的“头 原子放在最前面, 这些包括m o v i eh e a d e r ,t r a c kh e a d e r ,m e d i ah e a d e r 和m e d i ai n f o r m a t i o n b o x 中的各种“头 原子( v i d e om e d i ah e a d e r ,s o u n dm e d i ah e a d e r , h i n tm e d i ah e a d e r ) 。 推荐在s a m p l et a b l eb o x 中各原子使用下面的顺序:s a m p l ed e s c r i p t i o n , t i m et os a m p l e ,s a m p l et oc h u n k ,s a m p l es i z e ,c h u n ko f f s e t 。 强烈推荐t r a c kr e f e r e n c eb o x 和e d i tl i s t ( 如果存在) 应该先于m e d i a b o x ,h a n d l e rr e f e r e n c eb o x 应该先于m e d i ai n f o r m a t i o nb o x ,d a t a i n f o r m a t i o nb o x 应该先于s a m p l et a b l eb o x 。 u s e rd a t ab o x e s 在容器中应该放在最后的位置上,不论是在m o v i eb o x 还是t r a c kb o x 中。 原子的排列规则是为了保证同层原子中更重要的原子被放置在最前面,使得 其中的重要信息能被尽早地获取,发挥更大的作用。表2 - 1 列出了主要的各类原 子的层次关系和用途描述。 9 表2 - 1 主要原子的类型、结构及用途 f t y p 2 2 3 文件类型及兼容性 m d a t2 2 5 媒体数据 土 2 2 4 媒体信息数据容器 m o o v m v h d 2 2 6 影片头,整个影片的描述信息 u d t a2 2 2 6关于影片的用户数据 t r a k 2 2 7轨道容器 t k h d 臻 2 2 8 轨道头,单个轨道的描述信息 t r e f2 2 9 轨道参考 e d t s2 2 1 0 编辑列表容器 e l s t2 2 1 1 编辑列表 u d t a2 2 2 6 关于轨道的用户数据 m d i a 2 2 1 2 轨道中的媒体容器 m d h d 2 2 1 3 媒体头,媒体的描述信息 h d l r t 2 2 1 4 处理器,声明媒体类型 m i l f f 拳 2 2 1 5 媒体信息容器 v m h d | 2 2 1 6 视频轨道中的视频媒体描述信息 s m h d | 2 2 1 6 音频轨道中的音频媒体描述信息 h m h d | 2 2 1 6 提示轨道中的描述信息 n m h d l 2 2 1 6 空轨道中的描述信息 d i n f 簟 2 2 1 7 数据信息容器 d r e f 囊 2 2 1 8 数据参考,声明媒体数据源 s t b l t 2 2 1 9 样本表容器 s t s d 2 2 2 0 样本描述,主要是样本编码类型 s t t s 2 2 2 1 1 样本解码时间 c t t s 2 2 2 1 2样本合成时间 s t s z | 2 2 2 2 1 样本尺寸 s t z 2 | 2 2 2 2 2紧凑样本尺寸 s t s c 2 2 2 3 样本与块的对应关系 s t c o | 2 2 2 4 块偏移量,每个偏移量占3 2 b i t s c 0 6 4 | 2 2 2 4 块偏移量,每个偏移量占6 4 b i t s s t s s2 2 2 5 同步样本表,随机访问点 f r e ef r e ef r e ef r e ef r e ef r e e2 2 2 7 空余空间,可在任意位置 s k i ps k i ps k i ps k i ps k i ps k i p 2 2 2 7 与f r e e 相同 注:木表示该原子必须存在,表示在同类原子中必须有一种存在。 2 2 2 原子类型 首先介绍两个抽象原子类型:b o x 和f u l lb o x ,这两类原子仅用于派生出其 他原子,自身却并不生成任何原子实例。 1 0 2 2 2 1b o x 语法和语义: a l i g n e d ( 8 ) c l a s sb o x ( u n s i g n e di n t ( 3 2 ) b o x t y p e , o p t i o n a lu n s i g n e di n t ( 8 ) 1 6 】e x t e n d e d _ t y p e ) 【 u n s i g n e di n t ( 3 2 ) s i z e ; u n s i g n e di n t ( 3 2 ) t y p e = b o x t y p e ; i f ( s i z e = = 1 ) u n s i g n e di n t ( 6 4 ) l a r g e s i z

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论