录像类电子文件永久保存格式MXF介绍

GB/T 18894-2016《电子文件归档与电子档案管理规范》8.3“电子文件归档格式”中给出了一系列推荐的通用格式,如下所示:

 

这其中就有笔者今天要介绍的MXF文件格式。标准中是这样写的:“录像类电子文件以MPG、MP4、FLV、AVI等格式归档,珍贵且需要永久保存的可收集、归档一套MXF格式文件”。“MPG、MP4、AVI”都是常见的视频格式,无需笔者赘述;“FLV”在10年前曾经风靡全球,成为视频分享网站的首选格式,但随着Adobe公司于2020年正式宣布停止支持Flash,作为Flash Video的FLV格式也被无情淘汰。那么,相对陌生的MXF格式又是一种什么格式呢?为什么会被GB/T 18894-2016推荐为录像类电子文件的永久保存格式?

另外,DA/T 62-2017《录音录像档案数字化规范》9.3.2中也将MXF格式作为录像档案数字化的目标格式。

事实上,MXF格式不但不是偏门的视频格式,而且在高清数字影视领域是鼎鼎大名的视频交换格式,可以说是事实上的行业标准格式。

MXF概念

MXF是英文Material eXchange Format(素材交换格式)的缩语。MXF是SMPTE(美国电影与电视工程师学会)组织定义的一种专业音视频媒体文件格式。MXF主要应用于影视行业媒体制作、编辑、发行和存储等环节。SMPTE为其定义的标准包括:SMPTE-377M、SMPTE-336M、SMPTE-EG41、SMPTE-EG42等,并不断进行更新和完善。而根据DCI(Digital Cinema Initiatives)规范,数字电影数据包(Digital Cinema Package,DCP)中音视频等素材数据采用MXF格式进行封装(详见Digital Cinema System Specification)。

笔者找影视技术圈的专家去了解了一下,目前一部高清数字电影最终发布的DCP文件包在100GB~200GB左右,DCP包里面主要就是一系列MXF文件。


 

MXF格式

首先需要说明的是,MXF格式是一种容器格式而不是视频编码格式,这一点和MPG、MP4、AVI等格式有着本质的区别。

 

如上图所示,MXF文件根据所含内容可分为3个部分:文件头(File Header)文件体(File Body)文件尾(File Footer)。包含素材数据(Essence Data)的素材容器(Essence Container)全都存放于文件体中。在文件体中可含1个或多个素材容器。文件头是对整个MXF文件的综合描述,包括对文件体内的素材及其容器以及素材之间的同步和播放关系等的描述和控制。文件尾是MXF文件的终止部分,可包含索引表、控制信息和元数据。这种分类方法将控制信息、元数据与素材内容区分开,而文件头通常比较小,单独分析其中的参数,就可了解MXF文件中所含节目内容的各项特征。

若MXF文件中有多个素材容器,需将各个素材容器进行分隔。另外,为了随机索引、访问及文件的部分存储、恢复的方便,有时需将素材容器分割成不同的小块。这些小块在内容上逻辑连续,但是物理存放位置上不一定连续。为此,可将MXF文件划分成多个分区(Partition),共有三类分区:头部分区(Header Partition)主体分区(Body Partition)尾部分区(Footer Partition)。每个分区都是由分区包(Partition Pack)开头,紧随其后可能有头部元数据(Header Metadata)、1个索引表(Index Table)的部分或全部、1个素材容器的部分或全部。在头部分区之前,有的MXF文件可能会有Run-in部分用于伪装MXF文件为别的文件类型。尾部分区之后,可能会有随机索引包(Random Index Pack,RIP)用于对各个分区的索引。如下图所示:

头部元数据(Header Metadata)

接下去,我们再来了解一下其中比较重要的头部元数据(Header Metadata)的基本结构。MXF文件中的头部元数据主要分为两类:结构元数据(Structure Metadata)和描述元数据(Descriptive Metadata)。结构元数据主要用于将文件的各个部分结合起来,定义文件的基本结构、描述并控制各种类型的素材及其在时间线上的相互关系。描述元数据描述MXF文件中除结构元数据之外的信息,比如对场景的描述,采用插入机制嵌入MXF文件中。通过头部元数据就可以找到对应的素材数据,如下图所示:

文件体(File Body)

当然,MXF格式最核心的还是文件体(File Body)部分,音视频素材数据(Essence Data)就分段保存在其中的素材容器(Essence Container)中。MXF文件的所有数据都采用Key-Length-Value(KLV)方式进行编码以获得格式的灵活性和可扩展性,KLV编码标准定义在SMPTE-336M中。KLV的含义如下:

Key:16字节的标识符。

Length:数据(Value域)长度。采用BER(Basic Encoding Rules)编码编码方式,如83 00 00 88。它使用可变长的字节来表示非常宽的长度范围,该域总是按MSB(高字节优先)编码。

Value:KLV单元中包含的数据。

 

头部元数据的完整逻辑结构以及对应的素材容器数据

最终,头部元数据的完整逻辑结构以及对应的素材容器数据(Essence Container Data)如下图所示:

 

需要说明的是,MXF格式并没有规定其中包含的素材数据的格式,如前所述,其编码标准定义在SMPTE-336M中。由于MXF格式通常用于永久保存珍贵的录像类电子文件,一般不采用压缩格式,而是采用原始(无损)图像格式保存,比如视频的每帧图像采用DPX(Digital Picture Exchange,一种常用于电影制作的光栅图像格式)或者TIF格式来保存。虽然会导致最终生成的MXF文件很大,但对于珍贵录像类电子文件而言,原始保真无疑比存储空间更为重要。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值