概述

MP4文档击中要害迷住从科学实验中提取的费用都装在box(QuickTime中为atom)中,就是,MP4文档是由少量的盒子结合的。,每个盒子都有类型和广大地域。,BOX可以逮捕为从科学实验中提取的费用情郎块。盒子可以克制另本人盒子,这事箱子叫做箱。 box。MP4文档将率先有本人FTYP类型框。,作为MP4格式的打手势,并包罗公司或企业文档的少量的书信。;与单独的本人莫夫类型的盒子(影片) 盒子),它是一种加盖于。 box,子框包罗培养液的元从科学实验中提取的费用书信。;MP4文档的培养液从科学实验中提取的费用包罗在DAT类型框(MIDA)中。
Data 盒子)中,这种类型的盒子同样加盖于。 box,可以不断地本人,您也可以(当迷住培养液从科学实验中提取的费用援用及其他文档时),培养液从科学实验中提取的费用的体系由元从科学实验中提取的费用描画。

   以下是少量的模糊想法:

   track 表现少量的范本的集中,培养液从科学实验中提取的费用,轨迹表现电视频率或音频序列。。

   hint track 此特别轨道不包罗培养液从科学实验中提取的费用。,相反,它包罗了及其他从科学实验中提取的费用轨道为PA的指令书信。。

   sample 非线索 track来说,video 范本是电视频率的构架,或一组延续电视频率帧,audio 采样是本人延续的紧缩音频,它们高地范本。。线索 track,示例规则本人或多个流培养液包的格式。。

   sample table 指令SAMPE时序和物质的规划的表。

   chunk轨道的少量的范本的单位。

    在本表示愿意免费入场券,本人不议论建议的目录。,只关怀包罗培养液从科学实验中提取的费用的本土MP4文档。下面的用图表示是类型MP4文档的体系树。 

2、Box

       率先要解说的是,框击中要害八位字节次是电力网八位字节次。,即,大端八位字节次(大八位字节),复杂的说,它是本人32位的4八位字节强制的的蓄电方式,在低端具有高八位字节。。盒子由头部和人称结合。,经过给加说明文字布置框的大块和类型,人称有变化多的的意味和格式的根据的类型。

       基准框身体前部的4八位字节(32位)是框。 size,该大块包罗box 集箱和箱 总计达盒子的大块,左右,本人就可以场所文档击中要害各式各样的框。。是否量纲是1,这辱骂这事盒子的大块很大。 size,在大面积域中走快真实的量纲值。。实则,单独的DAT型盒子才有可能性大用。 size。是否量纲是0,指令该框是文档的最后的本人框。,文档的最后部份是框的最后部份。。(同样的)只存适合MAT类型的盒子中。。)

      量纲面前的32位是盒子 type,它普通有4个字。,譬如FTYP、莫夫等,这些盒子 类型早已预规则,使著名表达恒定意思。是否它是UUID,指令该框是用户涂类型。。中频盒 类型未规则,霉臭疏忽它

(1、MP4文档由多个盒子和全盒结合。。

(2、 Box,每个框由标头和从科学实验中提取的费用结合。。

(3、 FullBox,这是盒子的延伸,在盒体系的根据向升至桅顶添加8位 version和24bits flags。

(4、 Header,包罗总计达框的广大地域大块和类型类型。当size==0时,这是文档击中要害最后的本人框。;当size==1时,这辱骂盒子广大地域需求更多的一点来描画。,他日将规则64位对框广大地域的大的描画。;当类型为UUID时,在框中表现从科学实验中提取的费用是用户规则的涂类型。。

(5、 Data,这是盒子的实践从科学实验中提取的费用,它可以是纯从科学实验中提取的费用或更多的子框。。

(6、当本人盒子的从科学实验中提取的费用是朝反方向的子盒子,这事盒子也可以沦陷本人加盖于。 Box。当框不包罗子框时,这事盒子叫做金属薄片。 Box,而FullBox是mp4格式同意规则的一点点特别的Box。

Box 标头的体系是假的密码以下表达列举如下:

体系列举如下:

 

                                                                                             BOX体系描画图

二、MP4文档格式(ISO14146—12/14)

MP4文档是由各式各样的各样的盒子结合的。,下表中列出了迷住必选或可选的Box类型,强制的选择有典型的的盒子。

ftyp

√  

file type and compatibility

pdin

progressive download information

moov

√  

container for all the metadata

mvhd

√  

movie header, overall declarations

trak

√  

container for an individual track or stream

tkhd

√  

track header, overall information about the track

tref

track reference container

edts

edit list container

elst

an edit list

mdia

√  

container for the media information in a track

mdhd

√  

media header, overall information about the media

hdlr

√  

handler, declares the media (处置顺序) type

明夫

√  

media information container

vmhd

video media header, overall information (电视频率) track 只)

smhd

sound media header, overall information (说出) track 只)

hmhd

hint media header, overall information (线索) track 只)

nmhd

Null media header, overall information (少量的) tracks 只)

dinf

√  

data information box, container

dref

√  

data reference box, declares 源(s) of media data in track

stbl

√  

sample table box, container for the time/space map

stsd

√  

sample descriptions (编解码器) types, initialization etc.) 

stts

√  

(译码) time-to-sample

ctts

(构图) time to sample

stsc

√  

sample-to-chunk, partial data-offset

information

stsz

sample sizes (构架)

stz2

compact sample sizes (构架)

STCO

√  

chunk offset, partial data-offset information

co64

64-bit chunk offset

stss

sync sample table (随机) access 要点)

stsh

shadow sync sample table

padb

sample padding bits

stdp

sample degradation priority

sdtp

independent and disposable samples

SBGP

sample-to-group

sgpd

sample group description

subs

sub-sample information

mvex

movie extends box

mehd

movie extends header box

trex

√  

track extends defaults

ipmc

IPMP Control Box

moof

movie fragment

mfhd

√  

movie fragment header

traf

track fragment

tfhd

√  

track fragment header

trun

track fragment run

sdtp

independent and disposable samples

SBGP

sample-to-group

subs

sub-sample information

mfra

movie fragment random access

tfra

track fragment random access

mfro

√  

movie fragment random access offset

降糖片

media data container

free

free space

skip

free space

udta

user-data

cprt

copyright etc.

meta

metadata

hdlr

√  

handler, declares the metadata (处置顺序) type

dinf

data information box, container

dref

data reference box, declares 源(s) of metadata items

ipmc

IPMP Control Box

iloc

item location

ipro

item protection

sinf

protection scheme information box

frma

original format box

imif

IPMP Information box

schm

scheme type box

schi

scheme information box

iinf

item information

xml

XML container

bxml

binary XML container

pitm

primary item reference

fiin

file delivery item information

paen

partition entry

fpar

file partition

fecr

FEC reservoir

segr

file delivery session group

gitn

group id to name

tsel

track selection

meco

additional metadata container

mere

metabox relation

少量的要紧盒子简介,左右你就可以在后续的思索中达到好成就。:

1、  ftyp box,在文档的身体前部,所描画的文档的版本、相容的同意等。;

2、  moov box,此框不包罗使具有特点的培养液从科学实验中提取的费用。,但,它包罗THI中迷住培养液从科学实验中提取的费用的宏描画书信。,moov 箱内有MVHD和TRAK box。

        创办工夫记载在MVHD中。、修正工夫、工夫标准、可尤指用手播工夫和及其他书信。

        TRAK击中要害朝反方向子框描画了每个培养液的详细书信。。

3、  moof box,该框是电视频率切割描画书信。。它过错MP4文档的偏袒的,但在本人共相当的可在线尤指用手播的MP4格式文档中(譬如Silverlight Smooth 流培养液击中要害ISMV文档真的是重中之重。。

4、  降糖片 box,真实培养液从科学实验中提取的费用。本人终极解码这时的回放从科学实验中提取的费用。

5、  mfra box,普通在文档末了,培养液指示文档,可经过查询整齐的场所所需工夫点的培养液从科学实验中提取的费用。

附:Smooth 流培养液击中要害ISMV文档体系,文档被切割成多个切割。,每个Fragment中包罗moof和降糖片。左右的体系充分发挥潜在的能力了渐进式尤指用手播的需求。。(降糖片及其描画书信逐渐转移,收齐本人Fragment便可尤指用手播其击中要害降糖片)。

************************************

** 文档类型ftyp                              **

************************************

ftyp box 从科学实验中提取的费用体系的伪密码表现:

是什么污名?裁判的描画是: 

Each brand is a printable 四字 code, registered with ISO, that identifies a precise 旗。ISO登记簿的4个印。

下本人表出生于电力网。,列出几种共相当的根本文档格式。,培养液封装格式分清。

可以记录更多的目录

  Brand Extension Mime Type
MP4 mp41, mp42 .mp4 video/mp4, audio/mp4, application/mp4
3GPP various, e.g. 3gp4, 3gp5 .3gp video/3gpp, audio/3gpp
3GPP2 3g2a .3g2 video/3gpp2, audio/3gpp2
Motion JPEG 2000 mjp2 .mj2 video/mj2
QuickTime “qt” .mov video/quicktime

结合实践文学作品,下图是蓄电在MP4起源使就职的从科学实验中提取的费用。

广大地域(4八位字节):0x0000001c:框的广大地域为28八位字节。;

Boxtype(4八位字节):0x66747970:FTYP的ASCII码,箱体的分清;

MaigruBrand(4八位字节):0x69736f6d:ISOMASCII码;

迷你版本(4八位字节):0x00000200:ISMO版本号;

compatible_brands(12八位字节):解说本文档的适合性(或相容的性)ISMO,iso2,MP41三同意。

ftyp 框通常放在文档的身体前部。,经过辨析盒子,本人可以样式本人的软件(尤指用手播器)、demux、解析器意识霉臭应用哪个同意来解析文档。。

************************************

** 元从科学实验中提取的费用moov                              **

************************************

movie box —— container box whose 子盒子 define the metadata for a presentation (‘moov’) 

MOV包罗培养液P所需的朝反方向附带框蓄电元从科学实验中提取的费用。metadata)。

两点怀疑:是什么元从科学实验中提取的费用?莫莫有什么主要的盒子?

1)元从科学实验中提取的费用:描画从科学实验中提取的费用的从科学实验中提取的费用。培养液文档的元从科学实验中提取的费用是什么?为了说服本人整齐的的逮捕:

从一边至另一边是应用格式厂子获取MP4 FI的培养液书信。,这种培养液书信根本上包罗在MOOV中。。

电视频率包罗编码职别、分解率、色域、码率、帧速、位深、工夫广大地域等……

音频还包罗音轨、音频特点属性,如抽样率。

这些元从科学实验中提取的费用的费用适合本人:本人的零碎(如PC尤指用手播器),高咬合尤指用手播器可以经过MOOV 箱体辨析,自适应开刀尤指用手播影片在必然的方式。。在嵌入式疆土,鉴于DSP或ARM有限性的RAM无信息的,常常需求静态装满这事BROA所需的解码器。算法顺序),最廉的CPU可以经过自适应来应用。,成功忍受多速率和多格式的多人游玩。。

2)哪个主要框用于MOOV有效这些书信?

mvhd ——This box defines overall information which is 培养液孤独, and relevant to the entire 演示。

迷住文档都是鳎的(本人文档结果却包罗本人MVHD)。 盒子),对培养液从科学实验中提取的费用停止片面、片面的描画。包罗培养液创办和修正的工夫和工夫标准。、默许音量、色域、工夫广大地域和及其他书信。

率先,MVHD是本人满的的 Box,援用我的首次篇文字。:“ FullBox,这是盒子的延伸,在盒体系的根据向升至桅顶添加8位 version和24bits flags。”,见下图:

图中白色的是Moov。 盒子的广大地域与分清,

基准蓝是MVHD的广大地域0x6c。,

黄色是MVHD的指出和目录:

0x6D766864 这是MVHD的ASCII指出;

0x00000000 它是由Full Box涂的音阶位。,这都是0,版本和指出均为0。,参照后头的体系规则,它显示了工夫和。

第本人0x7C25B080是制造的工夫,次货个0x7C25B080这是最后的一次换衣服。可以看出培养液没被修正。。这两个值办法描画工夫?

 time is an integer that declares the creation time of the presentation 中 seconds 半夜以后, Jan. 1, 1904, in UTC 工夫)

即,从UTC工夫的0点到1904年1月1日的秒数。让本人手工操作成功:

0x7C25B080 = 2082844800秒,年纪大概有365天。,不思索闰年,1904+66=1970年中。如同没样式此培养液文档。,没因ISO标准的填写创作和修正工夫 the way,这事文档是在年纪前应用IKU密码替换样式的。。但这时的工夫不见得心情玩家分清和尤指用手播电视频率。。 

装出4八位字节工夫描画的最大工夫为0xFFFFF。,经过计算2040的变得越来越大忍受。是否,装出此限制因素是尤指用手播电视频率的需要限制因素。,因而到2040年末,或许迷住的MP4文档将无法尤指用手播宿夜。~(0 == 版本本。

0x000003E8 它的工夫标准,此值表现用于此文档击中要害迷住工夫描画的单元。。0x3E8 = 1000,平均的1s分为1000份。,每份1ms。

0x000A06A2它的持续工夫,培养液尤指用手播广大地域,0xA06A2 =  657058,这事数值的单位与实践工夫的对应相干即将经过下面的timescale限制因素。

duration / timescale = 可尤指用手播工夫广大地域(s)。电视频率可以在这时尤指用手播。。用MPC翻开,工夫的长与本人的计算相符。。

工夫刻度的工夫刻度刺入总计达文档。,迷住的工夫描画都霉臭作为参照。,譬如,解码工夫DTS,最要紧的工夫描画,如工夫PTS,et cetera。。

0x00010000 培养液速率,此值表现原始乘法器。。

0x0100 培养液音量,此值表现满的卷。。

下朝反方向的值是体系击中要害预规则值。,商议体系规则。

trak box ——This is a container box for a single track of a 演示。 A presentation consists of one or more 轨道。各 track is independent of the other tracks in the presentation and carries its own temporal and 无信息的书信。
Each track will contain its associated Media 盒子。

它的附带框包罗奇数的ME的鳎描画书信。。

本人意识电视频率通常有多个音轨。。

譬如,主动的DVD让舞会飞,1)有细分影片的录像带。2)无论如何两个音轨使著名表示愿意中国政府的高级官员和四川版本。,实则,为了制造更真实的调准瞄准器发生,为了相配多频道家庭影院,影片也有与众不同的的说出T。。3)多字的幕轨迹,简体中文,繁体中文,英文……。本人可以逮捕为什么TRAK box可以不断地本人:每个轨道是孤独的。,具有自我意识特点和属性,因而他们需求描画彼的不抵触。。

本人普通所看的MP4文档中moov下都无论如何是mvhd-trak-trak-trak…这种指派。

tkhd box 从科学实验中提取的费用体系的伪密码表现:

类似地本人在Moov的MVHD box,但TKHD只描画了单道的特点。。 


上图是TKHD在实践培养液击中要害从科学实验中提取的费用。:

0x5c是tkhd box广大地域,0x76B68 64是TKHD的ASCII码。。

0x00 00 00 0F应用满 方框击中要害指出位 box 8位 version + 24bits flag,记录我的第本人日记。,这时看台 0xf,就是,1111b。

这4种是从低到高的代表。:

Track_enabled: Indicates that the track is 启用。 是否这事使就职是0,轨道的目录不需求尤指用手播(譬如,本人应用少量的n)。<如Sony Vegas>样式电视频率剪辑时,有些轨迹仅供参照和稿件。,在输入处停下轨道。。
Track_in_movie: Indicates that the track is used in the 演示。 
Track_in_preview: Indicates that the track is used when previewing the 演示。

Track_in_poster: Indicates that the track is
used in 影片的 poster.

/* ——————————————————————————————————-*/

important:本人意识,MP4文档格式是ISO-14496-12根底文档格式的衍生品,1449—14,涂了12同意齐头并进一步规则。。

要紧的是这事“14496-12 根本文档格式同意,是否你回到你的先人,本人发现物这种文档格式最好的是由Apple公司的QuickTime培养液格式开展而来的。

即,MOV格式开门了ISO格式。 14496 – 12同意,与从MP4导出同意。,f4v,ismv,3GP和及其他经用培养液封装格式。

所从一边至另一边面指示牌位的鸟嘴相接触位,描画没在1444-12,在Apple同意中,可以记录真正地的规则。。

详见 https://developer.apple.com/library/mac/#documentation/QuickTime/QTFF/QTFFChap2/qtff2.html

/* ——————————————————————————————————-*/

两个0xc5268eb6 这是制造的工夫和轨道的最后的修正工夫。;

紧随其后的是0x000 000 02,代表轨迹 ID =2,Track ID过错0,鳎的,不成重用的分清轨迹办法;

32位后头的0个都是预定; 

0x000 09d97是这事轨道的广大地域,需求与MVHD协作 框击中要害工夫刻度 计算实践工期的持续工夫。

少量的后续的盲点不再被辨析。,有些是用MVHD反复的,你先前可以记录。文字。让本人看一眼两个中心田:

layer,PS图象处置软件击中要害苗圃模糊想法,较小的号码在尤指用手播时更近亲用户(下层)。。

alternate_group,轨道的备用子群身份证明,上班为0时,这辱骂该轨道的目录没备份文件。;不然,这事轨道可能性有零到多个备份文件轨道。。当同一组竞赛时 ID的轨道只选择本人尤指用手播。