MP4/MOV/3GP文件的“ftyp”

MP4文件、MOV文件和3GP文件,这三种媒体文件格式采用了相同的封装格式,其基本的组成单元是box。“ftyp”就是整个文件的第一个box,通过判断该box来确定文件的类型。该box有且只有1个,并且只能被包含在文件层,而不能被其他box包含。该box应该被放在文件的最开始,指示文件的相关信息。

文件的最开始的四个字节就是“ftyp”box的大小,然后是该box的类型。 “ftyp”的body依次包括1个32位的major brand(4个字符),1个32位的minor version(整数)和1个以32位(4个字符)为单位元素的数组compatible brands。这些都是用来指示文件应用级别的信息。以一个MP4文件的“ftyp”box为例,如下所示:

其中,

(1)0x00 00 00 18是“ftyp”box的大小,为24个字节,这在一般情况下为一个固定值。

(2)0x66 74 79 70是“ftyp”四个字符的ASCII值,也就是该box的类型。

(3)0x6D 70 34 32是major brand,这里为“mp42”,对于不同的文件,该值可能是不一样的。

(4)0x00 00 00 10是minor version。

(5)0x6D 70 34 32和0x6D 70 34 31是compatible brands,“mp42”和“mp41”

回过头来,那“ftyp”到底是什么呢?

ftyp就是一个由四个字符组成的码字,有时包含空格,用来标识编码类型、兼容性或者媒体文件的用途。它存在于MP4文件和MOV文件中,当然,也存在于3GP文件中。

虽然MP4文件、MOV文件和3GP文件采用了相同的封装标准,但由于是由不同的厂商合成,因此还是存在差别的。即使是同一种媒体文件,比如MP4文件,由不同developers开发的MP4也是存在差别的。ftyp简单的说就是为了标识它的developer是谁,兼容哪些标准等。

比如上面的例子,“mp42”表示它的major brand是MP4 v2 [ISO 14496-14],而“mp42”和“mp41”则表示它的compatible brands是MP4 v2 [ISO 14496-14]和MP4 v1 [ISO 14496-1:ch13]。


更多的ftyp可以参考下面的网址。

http://www.ftyps.com/

其中列出了所有可知的ftyp以及对他们的描述。

你可能感兴趣的:(媒体文件格式)