|
一、基本概念 1、 文件,由許多Box和FullBox組成。 2、 Box,每個(gè)Box由Header和Data組成。 3、 FullBox,是Box的擴(kuò)展,Box結(jié)構(gòu)的基礎(chǔ)上在Header中增加8bits version和24bits flags。 4、 Header,包含了整個(gè)Box的長(zhǎng)度size和類型type。當(dāng)size==0時(shí),代表這是文件中最后一個(gè)Box;當(dāng)size==1時(shí),意味著Box長(zhǎng)度需要更多bits來描述,在后面會(huì)定義一個(gè)64bits的largesize描述Box的長(zhǎng)度;當(dāng)type是uuid時(shí),代表Box中的數(shù)據(jù)是用戶自定義擴(kuò)展類型。 5、 Data,是Box的實(shí)際數(shù)據(jù),可以是純數(shù)據(jù)也可以是更多的子Boxes。 6、 當(dāng)一個(gè)Box的Data中是一系列子Box時(shí),這個(gè)Box又可成為Container Box。 文件基本結(jié)構(gòu)描述圖 二、MP4文件格式(ISO-14496-12/14) MP4文件概述 MP4文件就是由各式各樣的Box組成的,下表中列出了所有必選或可選的Box類型,√代表Box必選。
正式開始前先對(duì)文件的幾個(gè)重要部分宏觀介紹一下,以便諸位在后續(xù)學(xué)習(xí)時(shí)心中有數(shù): 1、 ftypbox,在文件的開始位置,描述的文件的版本、兼容協(xié)議等;正式開始前先對(duì)文件的幾個(gè)重要部分宏觀介紹一下,以便諸位在后續(xù)學(xué)習(xí)時(shí)心中有數(shù):2、 moovbox,這個(gè)box中不包含具體媒體數(shù)據(jù),但包含本文件中所有媒體數(shù)據(jù)的宏觀描述信息,moov box下有mvhd和trak box。 >>mvhd中記錄了創(chuàng)建時(shí)間、修改時(shí)間、時(shí)間度量標(biāo)尺、可播放時(shí)長(zhǎng)等信息。 >>trak中的一系列子box描述了每個(gè)媒體軌道的具體信息。 3、 moofbox,這個(gè)box是視頻分片的描述信息。并不是MP4文件必須的部分,但在我們常見的可在線播放的MP4格式文件中(例如Silverlight中的ismv文件)確是重中之重。 4、 mdatbox,實(shí)際媒體數(shù)據(jù)。我們最終解碼播放的數(shù)據(jù)都在這里面。 5、 mfrabox,一般在文件末尾,媒體的索引文件,可通過查詢直接定位所需時(shí)間點(diǎn)的媒體數(shù)據(jù)。
附:Silverlight中ismv文件結(jié)構(gòu),文件分為了多個(gè)Fragments,每個(gè)Fragment中包含moof和mdat。這樣的結(jié)構(gòu)符合漸進(jìn)式播放需求。(mdat及其描述信息逐步傳輸,收齊一個(gè)Fragment便可播放其中的mdat)。 下一篇:MP4文件格式詳解(二)——內(nèi)容詳解(近期更新) |
|
|