世界杯预选赛预测

目录

一、什么是MXF文件?

二、如何播放MXF文件

三、文件结构

四、使用ffmbc生成MXF格式视频

项目主页:http://code.google.com/p/ffmbc/

1. 编码IMX

1.1.命令行格式

1.2.示例

2.编码XDCAMHD422

2.1.命令行格式

2.2.示例

一、什么是MXF文件?

MXF(全称Material Exchange Format)是一种视频/音频容器格式,该格式由SMPTE标准定义,解决了非专业格式出现的问题。目前主要是应用在专业的摄像机中,用来存储视频、音频和其他数据。松下HVX200、佳能XF300 / XF305、索尼XDCAM等许多专业的便携式摄像机都是使用MXF格式。MXF格式与大量的编辑工具(包括Windows Movie Maker/iMovie)、播放器和设备都不兼容。如果您想播放该格式的视频只能转换格式或使用支持该编码格式的播放器。将MXF格式转换为其他流行的视频格式,您可以更加容易地播放和编辑MXF文件,若您是要在安卓手机、iPhone、iPad、iPod等移动设备上使用,最好是将其转换为MP4格式。

MXF是松下、索尼、佳能等专业数码摄像机中常见的视频格式,但在计算机以及移动播放设备的支持率不高。本文将主要介绍什么是MXF文件,MXF文件结构以及使用工具编码生成MXF格式的视频。

二、如何播放MXF文件

MXF格式的普及率不高,甚至有很多人都不知道这种格式,所以支持该视频格式的播放器不多。能打开MXF文件的软件有:

三、文件结构

MXF文件包括三个主体部分:文件头、文件体和文件尾。

文件头提供文件的整体信息,包括用于解码文件中所有视音频数据的解码器列表等。文件体由存储在要素容器中的视音频数据组成,来自不同数据轨(如视频、音频和时码)的要素容器可能交错和分离地存储在文件体中。文件尾用以结束一个MXF文件,包括一些在产生文件头时还不确定的信息,如文件的视音频长度等,文件尾的信息在某些场景中常常被忽略。

MXF文件也可包含一个可选的索引表(Index Table),该索引表可用于将基于采样的索引(如时码)快速换算到对应的要素容器在">MXF文件中的偏移地址,以实现视音频的快速预览和定位。该索引表可分段存储,可位于基本数据段之前或之后,也可分插到基本数据段中间。

MXF文件的所有数据都采用Key-Length-Value(KLV)进行编码以获得格式的灵活性和可扩展性,KLV编码标准定义在SMPTE 336M中。实际上MXF文件就是若干连续KLV数据包的序列(除了可选的RUN-IN包)。

the key identifies the data, the length specifies the length of the data, and the value is the data itself

Key:16字节的标识符。Length:数据(Value域)长度。BER(basic encoding rules )编码方式,如83 00 00 88。 它使用可变长的字节来表示非常宽的长度范围,该域总是按MSB(高字节优先)编码,如果第一个字节的bit7为0,那么低7位代表了0~127范围的长度,如果bit7为1,那么低7位代表长度域的字节个数。

Value:KLV单元中包含的数据

四、使用ffmbc生成MXF格式视频

ffmbc 全称是 FFMedia Broadcast,是个改版的FFmpeg,有如下功能:

创建可以导入Final Cut Pro, AVID Media Composer, Adobe Premiere中的文件

创建 XDCAM HD422 文件(.mov 或 .mxf)

创建 XDCAM IMX/D-10 文件(.mov 或 .mxf)

创建 AVID DNxHD 文件(.mov)

创建 DVCPROHD 文件(.mov 或 .mxf)

创建 ProRes 422 or 4444 文件(.mov)

转换 V210 文件

转换 HD YUV BT709 到 SD BT601 或者反过来

转换 AVCIntra 50 和AVCIntra 100

转换 MPEG-TS 文件

转换 AVCHD 文件

转换 ProRes 422 和 4444 文件

合并或分离音轨

创建 Quicktime 文件

从 HD 到 SD的颜色转换

等等。。。

项目主页:http://code.google.com/p/ffmbc/

32位64位下载地址:

https://download.csdn.net/download/u014162133/13117338

1. 编码IMX

编码视频为 IMX 30/50 MXF 或 MOV

1.1.命令行格式

输出Imx30

ffmbc -i < file > -target imx30 < file.mxf | file.mov >

输出Imx50

ffmbc -i < file > -target imx50 < file.mxf | file.mov >

注意:在MXF中,XDCAM要求至少为4声道。所以如果输入文件的音频流小于4声道,输出文件依然会被标记为4声道。 Target命令支持以下格式:"vcd", "svcd", "dvd", "dvcam", "dvcpro", "dvcpro50", "dvcprohd", "imx30", "imx50", "xdcamhd422"

1.2.示例

命令(转码为IMX30,MXF格式):

ffmbc -i test.flv -target imx30 test.mxf

转码前文件格式:

概要

完整名称 : E:\test\test.flv

文件格式 : Flash Video

文件大小 : 2.24 MiB

长度 : 30秒 0ms

平均混合码率 : 627 Kbps

视频

文件格式 : Sorenson Spark

编码设置ID : 2

长度 : 30秒 0ms

码率 : 562 Kbps

画面宽度 : 320像素

画面高度 : 180像素

画面比例 : 16:9

帧率模式 : 恒定

帧率 : 25.000 fps

位深度 : 8位

bits/(pixel*frame)(数据密度) : 0.390

大小 : 2.01 MiB (90%)

音频

文件格式 : MPEG Audio

格式版本 : Version 1

格式简介 : Layer 3

模式 : Joint stereo

扩展模式 : MS Stereo

编码设置ID : 2

编码设置ID/提示信息 : MP3

长度 : 29秒 858ms

码率模式 : CBR

码率 : 32.0 Kbps

声道 : 2声道

采样率 : 44.1 KHz

压缩模式 : 有损压缩

大小 : 117 KiB (5%)

编码函数库 : LAME3.98

转码后MXF文件格式(IMX30):

概要

完整名称 : E:\test\test.mxf

文件格式 : MXF

Format_Commercial_IfAny : IMX 30

格式简介 : OP-1a

格式设置 : Closed / Complete

文件大小 : 152 MiB

长度 : 30秒 0ms

平均混合码率 : 42.6 Mbps

编码日期 : 2014-07-23 02:56:14.000

编码程序 : FFmbc OP1a Muxer 53.6.0

编码函数库 : FFmbc OP1a Muxer 53.6.0

视频

ID : 2

文件格式 : MPEG Video

Format_Commercial_IfAny : IMX 30

格式版本 : Version 2

格式简介 : 4:2:2@Main

格式设置, BVOP : 否

格式设置, Matrix : 默认

格式设置, GOP : N=1

Format_Settings_Wrapping : Frame (D-10)

编码设置ID : 0D01030102010501-0401020201020105

长度 : 30秒 0ms

码率 : 30.3 Mbps

最大码率 : 30.0 Mbps

画面宽度 : 720像素

画面高度 : 576像素

原始高度 : 608像素

画面比例 : 16:9

帧率 : 25.000 fps

标准 : Component

色彩空间 : YUV

色度抽样 : 4:2:2

位深度 : 8位

扫描方式 : 隔行扫描

扫描顺序 : 奇数场(前场TFF)优先

压缩模式 : 有损压缩

bits/(pixel*frame)(数据密度) : 2.923

TimeCode_FirstFrame : 00:00:00:00

TimeCode_Source : Group of pictures header

大小 : 108 MiB (71%)

颜色初选 : BT.601 PAL

传输特质 : BT.709

矩阵系数 : BT.601

音频

ID : 3

文件格式 : PCM

格式设置, Endianness : Little

Format_Settings_Wrapping : Frame (D-10)

编码设置ID : 0D01030102010501

长度 : 30秒 0ms

码率模式 : CBR

码率 : 12.3 Mbps

声道 : 4声道

采样率 : 48.0 KHz

位深度 : 16位

大小 : 43.9 MiB (29%)

其它 #1

ID : 1

Type : Time code

文件格式 : MXF TC

TimeCode_FirstFrame : 00:00:00:00

TimeCode_Settings : Striped

其它 #2

Type : Time code

文件格式 : SMPTE TC

混合模式 : SDTI

TimeCode_FirstFrame : 00:00:00:00

2.编码XDCAMHD422

将视频编译为 XDCAMHD422 MXF或MOV 隔行编码:-target 前面添加-tff 或 -bff

ffmbc -i < file > -target xdcamhd422 < file.mxf >

注意:XDCAM要求至少2个单声道。使用-newaudio 和 -map_audio_channel. 举个例子,如下命令将一个立体声的视频转换为两个单声道的视频:

ffmbc -i < file > -target xdcamhd422 -an < file.mxf > -acodec pcm_s24le -ar 48000 -newaudio -acodec pcm_s24le -ar 48000 -newaudio -map_audio_channel 0:1:0:0:1:0 -map_audio_channel 0:1:1:0:2:0

2.1.命令行格式

ffmbc -i < file > -target xdcamhd422 -vtag < tag > < file.mov >

tag有如下选项: * "xd54" XDCAM HD422 720p24 CBR * "xd59" XDCAM HD422 720p60 CBR * "xd5a" XDCAM HD422 720p50 CBR * "xd5b" XDCAM HD422 1080i60 CBR * "xd5c" XDCAM HD422 1080i50 CBR * "xd5d" XDCAM HD422 1080p24 CBR * "xd5e" XDCAM HD422 1080p25 CBR * "xd5f" XDCAM HD422 1080p30 CBR

2.2.示例

命令

ffmbc -i test.flv -s 1280x720 -ac 1 -target xdcamhd422 test_xdcamhd422.mxf

注: 1.只支持单声道,如果输入文件为多声道,则会出现如下错误提示:

Error, target xdcamhd422 only supports mono audio tracks

可以通过添加-ac 1,将输入文件转换为单声道。 2.只支持输入为1920x1080或者1280x720格式,其他分辨率不支持。如果输入文件为其他分辨率,则会出现如下错误提示:

Error, target xdcamhd422 only supports 1920x1080 or 1280x720 resolutions

可以通过分辨率变换,将输入文件分辨率转换为1920x1080或者1280x720。 转码前文件格式:

概要

完整名称 : E:\test\test.flv

文件格式 : Flash Video

文件大小 : 2.24 MiB

长度 : 30秒 0ms

平均混合码率 : 627 Kbps

视频

文件格式 : Sorenson Spark

编码设置ID : 2

长度 : 30秒 0ms

码率 : 562 Kbps

画面宽度 : 320像素

画面高度 : 180像素

画面比例 : 16:9

帧率模式 : 恒定

帧率 : 25.000 fps

位深度 : 8位

bits/(pixel*frame)(数据密度) : 0.390

大小 : 2.01 MiB (90%)

音频

文件格式 : MPEG Audio

格式版本 : Version 1

格式简介 : Layer 3

模式 : Joint stereo

扩展模式 : MS Stereo

编码设置ID : 2

编码设置ID/提示信息 : MP3

长度 : 29秒 858ms

码率模式 : CBR

码率 : 32.0 Kbps

声道 : 2声道

采样率 : 44.1 KHz

压缩模式 : 有损压缩

大小 : 117 KiB (5%)

编码函数库 : LAME3.98

转码后文件格式:

概要

完整名称 : E:\test\test_xdcamhd422.mxf

文件格式 : MXF

Format_Commercial_IfAny : XDCAM HD422

格式简介 : OP-1a

格式设置 : Closed / Complete

文件大小 : 182 MiB

长度 : 30秒 0ms

平均混合码率 : 51.0 Mbps

编码日期 : 2014-07-23 03:23:12.000

编码程序 : FFmbc OP1a Muxer 53.6.0

编码函数库 : FFmbc OP1a Muxer 53.6.0

视频

ID : 2

文件格式 : MPEG Video

Format_Commercial_IfAny : XDCAM HD422

格式版本 : Version 2

格式简介 : 4:2:2@High

格式设置, BVOP : 是

格式设置, Matrix : 默认

格式设置, GOP : M=3, N=12

Format_Settings_Wrapping : Frame

编码设置ID : 0D01030102046001-0401020201040300

长度 : 30秒 0ms

码率 : 50.0 Mbps

画面宽度 : 1 280像素

画面高度 : 720像素

画面比例 : 16:9

帧率 : 25.000 fps

标准 : Component

色彩空间 : YUV

色度抽样 : 4:2:2

位深度 : 8位

扫描方式 : 逐行扫描

压缩模式 : 有损压缩

bits/(pixel*frame)(数据密度) : 2.170

TimeCode_FirstFrame : 00:00:00:00

TimeCode_Source : Group of pictures header

大小 : 179 MiB (98%)

颜色初选 : BT.709

传输特质 : BT.709

矩阵系数 : BT.709

音频

ID : 3

文件格式 : PCM

格式设置, Endianness : Little

Format_Settings_Wrapping : Frame (AES)

编码设置ID : 0D01030102060300

长度 : 30秒 0ms

码率模式 : CBR

码率 : 768 Kbps

声道 : 1声道

采样率 : 48.0 KHz

位深度 : 16位

大小 : 2.75 MiB (2%)

其它 #1

ID : 1

Type : Time code

文件格式 : MXF TC

TimeCode_FirstFrame : 00:00:00:00

TimeCode_Settings : Striped

其它 #2

Type : Time code

文件格式 : SMPTE TC

混合模式 : SDTI

TimeCode_FirstFrame : 00:00:00:00

参考文章:

https://code.google.com/archive/p/ffmbc/

https://www.thinbug.com/q/19263601

https://blog.csdn.net/leixiaohua1020/article/details/19020203