Fragmented MP4方案的优势

Fragmented MP4简称fMP4。与MPEG2TS相比,Fragmented MP4文件有六个关键的优势:

(1)内容与Metadata分开保存        (2)Track之间相互独立      (3)支持Trick-play模式

(4)向后兼容MPEG2TS          (5)支持数据流无缝拼接    (6)集成了DRM技术

1、内容与Metadata分开保存

在MP4文件中,Metadata和Video、Audio等媒体数据是分开保存的。而MPEG2TS,却将媒体流和Metadata信息合在一起。

换句话说就是,Metadata信息可以非常灵活的存放在Fragmented MP4文件中,不需要考虑媒体数据的存放位置。将内容与Metadata分开,允许这样一种规范格式,最佳化的使用movie fragments,特别是在不同媒体数据的自适应转化方面,无论媒体数据的视频质量是不断变化的、多视角的,还是包含多种语言tracks,甚至有多个字幕。

2、Track之间相互独立

在fMP4文件中,基本码流是单独保存的,几个基本码流不会被复合。对于fMP4文件本身而言,它的保存位置也是不可知的,而且有可能只保存音频或者视频码流,它的位置可以根据基于XML的清单文件找到。将Metadata和媒体数据分开的一个好处就是,可以很容易的实现数据流的聚合。比如,一个音频文件和一个视频文件,虽然保存在不同的地方,但是利用清单文件可以将他们结合在一起,通过下载和同步他们的fragments,而且不需要预先将他们在服务器端复合。

fMP4的这种对于fragments可寻址的特性,将一个音频或者视频的所有fragments保存在同一个文件中。这一点区别于HLS方案,HLS方案而是使用无数个MPEG2TS复合文件。fMP4文件中的音频和视频segments可以分别处理,作为单独的fragment,而且为了让它能够被解码,每个fragment都包含必须的Matadata和媒体数据。fMP4的清单文件仅仅需要一个模板,为每个音频、视频fragment生成一个地址。而HLS方案的清单文件需要包含一个列表,这个列表列出了无数过个小文件的文件名称。

3、支持Trick-play模式

Trick-play模式包括快进功能、倒退功能、慢播、对chapter任意访问等。通过对Metadata的合适使用,可以很容易的实现Trick-play模式。超快速前进和倒退功能也是可以支持的,仅仅通过请求每个fragment的开始位置和’mdat‘ box的开始位置,每个fragment包含一个’moof‘ box,’mdat‘ box包含一个random access picture(AVC IDR Picture)。

Transport stream的chunk可能不是以entry points开始的,因此,如果不解析整组TS包,从一个关键帧跳到另一个关键帧是比较困难的。此外,fMP4支持多回放模式,使用类似SVC的可扩展编解码器,将媒体数据编码成不同的帧率,因此,播放器就可以从fMP4容器文件请求和播放不同帧率的视频数据。

4、向后兼容MPEG2TS

将时间信息从音频和视频流中分离出来,这个操作允许将多个fMP4的数据流转换成MPEG2TS。对于Adobe和Microsoft,fMP4固有的time-alignment特性,意味着他们各自的服务器解决方案可以很容易的转换成Apple个人拥有的HLS协议,这种协议使用的是MPEG2TS。

Microsoft的高级数字媒体architect,Kilroy Hughes说过:“世界上有很多媒体格式,因此,在网络视频方面,在服务项目和设备之间,媒体的互用性是一个巨大的问题。我们认为,对于网络视频传输,最好的解决方案就是使用一种通用的媒体文件格式,就像标准化DVD一样。如果一个HLS发出一个请求,我们可以将保存在这个通用媒体文件格式中的几个相互独立的tracks合成一个MPEG2TS,这个通用媒体文件格式使用的是fragmented ISO媒体文件格式。MP4的媒体流是time-aligned,因此,很容易将相关的movie fragment合成MPEG2TS。”

将MP4基本流转化成HLS(MPEG2TS)称为可能的其中一个原因是MPEG4保存数据流的方式。MPEG4集成了DRM技术,使用了通用的加密格式,而MPEG2TS保存数据采用了比较老的复合Annex B格式,这种格式限制了回放的兼容性。虽然MPEG2TS用来创建单独的仅仅包含音频或者视频的TS,但是使用保存在MPEG2TS流中不相关的编码时间戳将他们重新组合在一起仍然是比较困难的。

5、支持数据流无缝拼接

fMP4的音频流或者视频流可以被单独的请求,因为每个fragment只包含一种媒体类型。相反,MPEG2TS的每个chunk包含多种媒体类型,因此,不能单独请求。这意味着,及时对MPEG2TS的访问可以精确到字节的程度,这个被请求的byte-range也将是Medata、音频、视频和头信息的混搭。尝试下载多个复用文件并在player上选择track,需要两倍的下载带宽、缓冲区和解复用过程,而且,当校准不同TS的track,或者在自适应转化的过程中实现拼接的时候,还有可能会存在同步的问题。

Hughes说:“在自适应流技术的早期,要想通过MPEG2TS来实现字节流的拼接,必须依靠严格的编码,将一个chunk连接到另一个chunk,从而形成一个可解码的数据流。连接来自于两个不同文件的不同的audio或者packet,会导致数据流不能被解码。如果MPEG2TS的chunk不是time aligned或者不是以IDR帧开始的,duplicate chunks必须在同一个时间区间内下载,而且只能实现近似的拼接,此外还需要考虑网络效率和设备的复杂成本。”

fMP4的同步点是通过比特率和媒体类型来匹配的:同一种媒体类型内部的同步点可以相互匹配,但是不同的媒体类型之间的同步点没有必要相互匹配。为了两个数据流之间的音频视频同步,精确的比特流拼接需要完全一致的时间。音频和视频的基本流是独立的,而且是time alignment的,意味着同步点可以和完美的定位到视频的Groups of Pictures(GOPS)或者音频的同步帧。

使用独立的同步点、简单的连接拼接,产生了缩短的segment长度:MPEG2TS的segment尝试是10s,转化频率受限的,而且需要额外的带宽和处理过程。fMP4的segment的长度可以低到1到2s,因为他们不需要额外的带宽和处理过程。较短的segment长度可以做出更快的调整,以避免明显的视频质量改变、重新缓存出现停顿,并且为广告的插入在时间上实现更精确的拼接。

6、集成了DRM技术

数字版权和加密,是MPEG4固有的特性,两者都可以应用到packet级别。此外,MPEG Common Encryption (ISO/IEC 23001-7 CENC)方案可以和MPEG-4 Part 12联合在一起,以使能DRM和基本流加密。

AVC格式的基本流加密应用在了NAL单元。数据流可以在不解密的情况下编辑,加强了与不同解码器的兼容性,并且允许重新打包封装成其他container(将加密的基本流从多个fMP4文件转化成一个MPEG2TS文件)。

虽然有很多种DRM方案,但是,对于每一种DRM方案,为每个文件创建一个不同的版本是不现实的。MPEG Common Encryption (CENC)使用了一个多DRM方案,被批准用于UltraViolet (UVVU),这种方案使用了五个DRM解决方案,分别来自于Adobe、Google、Marlin、Microsoft和Open Mobile Alliance。为了这种互操作性可以跨多种设备和DRM,CENC已经被制定成了MPEG 标准。Adobe Flash® Access和Microsoft Protected Interoperable File Format (PIFF) 就是参考了CENC。

MPEG2TS由于是复合的,而且缺少独立于基本流的Metadata,导致MPEG2TS缺少这种通用加密。但是,尽管是这样,MPEG-DASH播放器还是为基本流使用了加密。

将CENC应用到Digital Entertainment Content Ecosystem(DECE)使用的Common File Format,可能会产生一些有趣的结果。当CENC被唐突的批准为MPEG Part 12修正方案3,支持者表示,CFF和CENC将代表了走向大尺寸在线视频分布的重要两步,通过碎片化基本流的自适应传输。

你可能感兴趣的:(fMP4)