mp4文件格式解析 – nigaopeng

    眼前MP4的想法恰好是流传。,它异样杂乱的。。最开端MP4指的是音频。MP3晋级版,即MPEG-2 AAC基准。随后MP4想法转变到录像,实质性的的ISMPEG-4基准。如今笔者称它很深受欢迎。,这首要是由于可以运用。MPEG-4基准编码录像传播器。但本文的材料与上述的无干。,笔者将要议论的是MP4文件封装体式,实质性的的基准是ISO/IEC 14496-12,就是说,最早有些消息技术阳明阴灵情郎编码。12有些:ISO根本中数文件体式Information technology Coding of audio-visual objects Part 12: ISO base media file 体式)。ISO/IEC到达组织规则的基准通常用麻痹表现。,ISO/IEC 14496是MPEG-4基准。

    MP4录像文件封装体式因为凌厉的工夫容器体式使明确,因而咨询QuICTIME的体式使明确与逮捕MP4文件体式有扶助。MP4文件体式是东西恰好是吐艳的容器,它可以用来作图险乎所某个中数机构。,MP4文件中间的中数作图与中数知识上菜用具,中数知识的到达组织异样收费的。,不确定的扩音机代次,倘若中数知识也可以目前的援用如此等等文件。。同时,MP4还帮助流中数。MP4眼前广为流传地器具于包装置于球面内部。录像和AAC音频,是高清录像的代表。

如今让笔者看一眼MP4文件体式是多少的。。

1、概述

    MP4文件中间的财产知识都装在box(QuickTime中为atom)中,就是说,MP4文件由到什么程度盒子结合。,每个盒子都有它的类型和长。,可以将BOX逮捕为知识情郎块。。你可以在盒子里再装东西盒子,即将到来的箱子叫做容器。 box。MP4文件将率先有东西FTYP类型框,MP4体式的LOGO 教学说闲话,象征使关心文件的到什么程度消息;那么将除非东西莫夫类型的盒子(影片) 盒子),这是东西容器。 box,子框象征中数的元知识消息;MP4文件的中数知识象征在DAT类型框(MIDA)中。 Data 盒子)中,这种类型的盒子异样容器。 box,能够很东西。,否(当财产中数知识援用如此等等文件时),中数知识的机构由元知识作图。

以下是到什么程度想法:

    track表现范本集中。,中数知识,轨迹表现录像或音频序列。。

    hint track此特派顺风的不象征中数知识。,相反,它象征到什么程度用于包装如此等等知识轨道的指挥的。。

    sample非暗示 举例来说,video 范本是录像的构架,或一组延续录像帧,audio SAPLE是东西延续的紧缩音频,它们统称为范本。。暗示 track,示例使明确东西或多个流中数包的体式。。

    sample tableSAMPE时序和自然的规划表。

    chunk由到什么程度范本结合的迹单位。

    在本供给物免费入场券,笔者缺陷在说暗示。,只关怀象征中数知识的天真的MP4文件。下图显示了类型MP4文件的机构树。

 

2、Box

率先要当心的是,框中间的音节次是播送网音节次。,那是Big Endian。,复杂的说,32位4音节走完的的以高位音节蓄电在蓄电器的低端。。盒子由头部和赋予形体结合,头称呼委任框的上胶料和类型。,赋予形体鉴于其类型有不一样的进口和体式。。

基准框以四音节(32位)的方框出发。 size,上胶料包孕盒子。 集箱和箱 周遍的上胶料,因而笔者可以在文件中找到盒子。。即使量级是1,这使基于箱子的上胶料很大。 size,在大量级场中达到预期的目的真实量级值。。(事实上,除非MAT类型的盒子很能够大用。 size。即使量级是0,表现该框是文件中间的末了东西框。,文件的末了是框的末了。。(异样,仅在MAT类型的方框中)。)

32位以下的上胶料是框 type,通常是4个性格。,诸如,FTYP。、莫夫等,这些盒子 类型是提前的使明确的,少数表达定期地意思。即使它是UUID,表现该框是用户加强类型。。中频盒 缺少使明确类型。,笔者必需做的事疏忽它。。

3、File Type Box(ftyp)

盒子里除非东西盒子,只象征在文件层中,它不克不及象征在如此等等的盒子里。。该框应座位在文件的出发。,训令MP4文件器具的消息。

    “ftyp” 赋予形体由32位专业轮番结合。 污辱(4个性格),1位32位未成年人 version(走完的的)和1个以32位(4个性格)为单位元素的大楼compatible brands。这些是用来训令文件器具顺序平均的的消息。。该框的音节示诸列举如下:

4、Movie Box(moov)

该框象征文件中数的元知识消息。,MOOV是东西容器 box,由子框正文的特派材料消息。同卵双胞文件 Type 与方框同族相干。,盒子里除非东西盒子,只象征在文件层中。普通情况下,“moov”会紧随“ftyp”呈现。

普通(限于长),本文仅作图共有的的MP4文件机构。,MOOV将象征东西MVHD和到什么程度TRAKS。。MVHD的题目 box,普通来说,它似乎是MOOV的最早顶点盒子(关闭如此等等容器) 诸如盒子,header 框必需做的事都显示为最早个框)。TRAK象征关心顺风的的消息,这是东西容器。 box。上面是东西有些MOOV音节的举例,白色有些是盒子。 header,绿色是MVHD。,黄色是TRAK的一有些。

4.1 Movie Header Box(mvhd)

    “MVHD的机构列举如下。

场地

音节数

意思

box size

4

box上胶料

box type

4

box类型

version

1

箱型,0或1,普通0。(上面的音节数是版本=0)

flags

3

creation time

4

到达工夫(相关性闭UTC工夫04-01-01零秒)

modification time

4

修正工夫

time scale

4

1秒文件代理人的得体的值,可以逮捕为长为1秒的工夫单位的量子

duration

4

作记号长,运用工夫和工夫 刮治术值容许计算轨道工夫。,诸如,音频 轨道工夫 scale = 8000, duration = 560128,持续工夫是,video 轨道工夫 scale = 600, duration = 42000,持续工夫是70

rate

4

王室侍从官传播率,高16位和低16位是少数的走完的的有些和少数有些。,即[] 体式,值(0x000 010000)训令正规的正向回放。

volume

2

相似物率,[] 体式,(0x0100)表现最大才能

reserved

10

保存位

matrix

36

录像间隔的矩阵

pre-defined

24

next track id

4

下东西顺风的的ID号

    “MVHD的音节实诸列举如下所示。,郊野已被色划分。:

4.2 Track Box(TRAK)

    “trak”也这是东西容器。 box,它的子框象征顺风的的中数知识援用和作图(Hin)。 除沿着又路走外)。MP4文件中间的中数可以象征多个磁道,至多又轨道,这些轨道是共有的孤独的。,有本身的工夫和中间消息。TRAK必需象征东西TKHD和东西MDEA。,也有很多可选的盒子。。TKHD在哪里 header box,“mdia”为media box,该box是东西象征到什么程度track中数知识消息box的container box。

上面列出了到什么程度TRAK音节的举例。,黄色的是TRAK盒子的头。,绿色是TKHD。,蓝色是EDTS(可选框),白色是MDA的一有些。

4.2.1 Track Header Box(tkhd)

    “TKHD的机构列举如下。 

场地

音节数

意思

box size

4

box上胶料

box type

4

box类型

version

1

箱型,0或1,普通0。(上面的音节数是版本=0)

flags

3

位或运算终结值,预使明确列举如下:

0x000001 track_enabled,要不,将不传播顺风的。;

0x000002 track_in_movie,表现回放中援用的顺风的。;

0x000004 track_in_preview,表现概述中援用的顺风的。。

平均值为7。,即使东西中数财产track均未设置track_in_movie和track_in_preview,可以逮捕,所某个轨道都有这两个使受协议条款的约束集。;暗示 track,数值为0。

creation time

4

到达工夫(相关性闭UTC工夫04-01-01零秒)

modification time

4

修正工夫

track id

4

id号,不成反复而非零

reserved

4

保存位

duration

4

轨道工夫长

reserved

8

保存位

layer

2

录像层,Windows 默认值为0。,在下层是小的。

alternate group

2

顺风的信息分类消息,Windows 默认值为0。表现该track未与如此等等track有群组相干

volume

2

[] 体式,即使是音轨,(0x0100)表现最大才能;要不是0。

reserved

2

保存位

matrix

36

录像间隔的矩阵

width

4

height

4

高,均为 [] 体式值,实践屏风量级与战利品作图之比,回放显示的宽度和殿下

    “TKHD的音节实诸列举如下所示。,郊野已被色划分。:

4.2.2 Media Box(MDA)

    “Mdia异样东西container box,其子盒子的机构和类型依然相当复杂。。率先风景东西。MDA的案件机构树图。

总体来说,“Mdia是使明确的。顺风的中数类型和sample知识,作图sample消息。普通“MDEA象征东西。mdhd”,东西“HDLR与Aminf”,在内的“mdhd”为media header box,“HDLr是handler reference box,“Minf是media information box。让笔者顺序看一眼这些。箱体机构。

4.2.2.1 Media Header Box(mdhd)

    “MHDD的机构列举如下。 

场地

音节数

意思

box size

4

box上胶料

box type

4

box类型

version

1

箱型,0或1,普通0。(上面的音节数是版本=0)

flags

3

creation time

4

到达工夫(相关性闭UTC工夫04-01-01零秒)

modification time

4

修正工夫

time scale

4

同卵双胞张书桌

duration

4

轨道工夫长

language

2

中数说闲话法典。绝顶方位为0。,末了15位是三个性格(检查ISO) 632-2/T基准中间的使明确

pre-defined

2

    “上面显示了DMHD的音节案件。,郊野已被色划分。:

4.2.2.2 Handler Reference Box(高密度脂蛋白感觉器官

    “HDLR解说中数播送消息的工艺流程,该盒子也可以包孕在内meta box(元)。“HDLR的机构列举如下。

场地

音节数

意思

box size

4

box上胶料

box type

4

box类型

version

1

箱型,0或1,普通0。(上面的音节数是版本=0)

flags

3

pre-defined

4

handler type

4

在中数 箱式基层,该值为4个性格。:

“vide”— video track

“soun”— audio track

“hint”— hint track

reserved

12

name

不定

track type name,用0开头的性格串

    “HDLR的音节实诸列举如下所示。,郊野已被色划分。:

4.2.2.3 Media Information Box(闽)

    “minf”蓄电理解说track中数知识的handler-specific消息,media 拳击教练运用这些消息将中数工夫映照到中数知识并处置它。。MIF和中数解说中间的消息体式、材料和中数类型 拳击教练是亲密相关性的。,如此等等media 拳击教练不意识到以无论什么方式解说这些消息。。“minf”这是东西容器。 box,经过子框阐明实践材料。。

    普通情况下,MIF象征头 box,DIF和STBL,在内的,header 按轨箱 type(即media handler 类型分为VMHD、“smhd”、“hmhd”和“nmhd”,“dinf”为data information box,“stbl”为sample table box。上面参加绍介。。

上面是MIF的有些音节案件,白色是盒子。 header,蓝色是SMHD。,绿色是DIF。,黄色是STBL的一有些。

 

4.2.2.3.1 Media Information Header Box(vmhd、smhd、hmhd、nmhd)

Video Media Header Box(vmhd) 

场地

音节数

意思

box size

4

box上胶料

box type

4

box类型

version

1

箱型,0或1,普通0。(上面的音节数是版本=0)

flags

3

graphics mode

4

录像分解模特儿,在0:00付印原始图像,用opror分解

opcolor

2×3

{白色,green,blue}

 

Sound Media Header Box(smhd) 

场地

音节数

意思

box size

4

box上胶料

box type

4

box类型

version

1

箱型,0或1,普通0。(上面的音节数是版本=0)

flags

3

balance

2

立体声攀登,[] 体式值,普通0,代表财产左费兰带,代表正式的的费兰带

reserved

2

Hint Media Header Box(hmhd)

    略

Null Media Header Box(nmhd)

在非录像和音频中数中运用方框,略。

4.2.2.3.2 Data Information Box(dinf)

Dinf解说以无论什么方式位置中数消息,这是东西容器。 box。DIF通常象征东西DRIF,即知识 reference box;DRIF将象征多个URL或URN。,这些盒子结合东西表,用于位置顺风的知识。复杂的说,轨道可分为到什么程度段,每个段都可以鉴于URL或URL表明的地址检索知识。,sample作图中会用这些分岔的序号将这些分岔结合东西走完的的track。普通情况下,当知识完整象征在文件中时,URL或URN中间的位置性格串为空。。

DRIF的音节机构列举如下。 

场地

音节数

意思

box size

4

box上胶料

box type

4

box类型

version

1

箱型,0或1,普通0。(上面的音节数是版本=0)

flags

3

entry count

4

URL或URN表中间的元素数

URL或URN列表

不定

    “url”或“urn都是box,“url材料是东西性格串location string),“urn材料是一对性格串name string and location string)。当“url”或“urn”的box flag1时,性格串是空的。。

在这一点上是东西DIF音节案件图。在内的黄色是dinf”的box header,从白色有些,笔者意识到它象征什么。URL或瓮的量子是1,白色向后是url”盒子材料。紫如url”的box 头(因为box 笔者意识到的类型是url”),绿色用于box flag,值为1,阐明“URL中间的性格串为空,表现文件中象征顺风的知识。。

4.2.2.3.3 Sample Table Box(STBL)

    “Stbl险乎正规的MP4文件中最复杂的东西盒子。,率先,我必要回顾一下。范本想法。范本是中数知识蓄电的单位,蓄电在media的块代理人,块和战利品长可以彼此不一样。,列举如下图所示。

    “stbl”象征了关心track中sample财产工夫和方位的消息,范本的编码与解码。运用此表,采样时序可以解说、类型、蓄电容器中间的量级和方位。“stbl”这是东西容器。 box,它的子盒子包孕:sample description 盒(STSD)、time to sample 盒(STTS)、sample size box(stsz或stz2)、sample to chunk 盒子(STSC)、chunk offset box(stco或co64)、composition time to sample 箱(CTTS)、sync sample 盒(STSS)等。。

STSD不成或缺,它至多象征东西登记。,盒子里有知识。 reference 范本知识检索框。缺少STSD不克不及计算中数 范本蓄电方位。STSD象征编码消息,蓄电的消息随中数类型而找头。。

Sample Description 盒(STSD)

    box 题目和版本场地随后会有东西登记 count场地,鉴于出境人数,每个登记都有类型消息,诸如,VIDE。、桑德等,鉴于类型不一样的战利品 作图供给物不一样的消息,诸如,用于录像 track,将有视觉范本登记类型消息,关闭音频 轨道将有音频缩小类型消息。

录像编码类型、宽高、长,音频的声道、采样等消息特许市出如今即将到来的箱式基层。

Time To Sample 盒(STTS)

STTS蓄电战利品的持续工夫,作图了范本工夫序列的映照方式。,笔者可以在无论什么时辰经过它找到战利品。。Stts可以象征东西紧缩表来映照工夫和采样号。,运用如此等等表来供给物每个范本的长和指示剂。表中间的每个登记在同族相干的范围内供给物延续的采样号。,战利品的偏移量。加强这些偏移量,你可以到达东西走完的的工夫。 to sample表。

Sample Size Box(stsz)

    “stsz” 每个范本的上胶料被使明确。,包孕中数中间的范本总额和供应SIZ的表。。即将到来的盒子对照大。。

Sample To Chunk 盒子(STSC)

    用chunk到达组织sample可以近便的使最优化知识获取,THULK象征东西或多个范本。。范本和块私下的映照相干由表中作图。,检查这张表就可以找到象征称呼委任sample的thunk,因而找到即将到来的范本。。

Sync Sample 盒(STSS)

STSS确定中数的转折点帧。紧缩中数知识,转折点帧是串联紧缩序列的起源帧。,它的减压不依赖于以前的帧。,后续帧的解紧缩将依赖即将到来的转折点帧。。STSS可以在恰好是紧凑的中数中特征随机接入点。,它象征东西范本编号表。,表中间的每个使受协议条款的约束严格的依据序列号名列前茅。,解说中数中哪个范本是转折点帧。即使此表不存在,解说每个范本是东西转折点帧,是东西随机接入点。

Chunk Offset 盒(STCO)

STCO使明确中数流中每个THONK的方位。。位置有两种能够性,32位的和64位的,后者关闭恰好是大的影片恰好是可供使用的。。书桌上除非一种能够性。,此方位在十足文件中。,而缺陷在无论什么箱式基层的,经过左右做,您可以在文件中目前的找到中数知识。,省掉解说框。要紧的是要当心,一旦前面的盒子换衣服了无论什么东西。,这张表格必要复原物。,由于方位消息早已换衣服。。

5、Free Space Box(收费或明白的)

    “收费的材料未必要紧。,可以疏忽不理会。该使死亡框后,对传播缺少引起。

6、Meida Data Box(知识处置顺序)

该框象征在文件层中。,能够很东西。,或不(当财产中数知识被表面文件援用),用于蓄电中数知识。知识目前的顺风的框。 类型场地前面,特派的知识机构的进口必要援用元知识。 表中作图)。

普通MP4文件的机构早已走完。,能够会更其杂乱。,下图是行情箱的树形机构,它可以用来达到预期的目的MP4文件的机构的总体思绪。。

本文首要对准几对对MP4文件机构理解甚少的饱学之士,这是一篇对照初级的文字。,我还提到到什么程度消息要写浮现。,关闭MP4文档中触及的到什么程度想法还不太整整。,因而必需做的事有到什么程度曲解。,我预料你能批判性地调准瞄准器本文。。即使有失策,我也使高兴给我提提议。。

本文首要是指基准和网络公民。wqyuwss的视频博客凝结文字:mp4文件体式

no comments

Leave me comment