石穗東 劉寧 朱桂生
(1.中山市公安局刑科所,廣東中山 528403;2.廣東省公安廳物證鑒定中心,廣東廣州 510000)
MP4 是一種常見的多媒體封裝格式,對應的標準為ISO/IEC 14496-12:ISO Base Media File Format 及ISO/IEC 14496-14:MP4 File Format。MP4格式幾乎可以用來描述所有的媒體結構,可以在其中嵌入任何形式的數據,以及各種編碼的音視頻,常用于網上流、光盤、語音發送(視頻電話),以及電視廣播。MP4目前被廣泛用于封裝h.264 視頻和AAC 音頻,是高清視頻的代表。
MP4 文件由一系列box 組成(QuickTime 中為atom)。Box由header和body組成,其中header 指明box 的size(32 位)和type;size 指明了整個box所占用的大小,包括header部分,這樣就可以在文件中定位各個box;如果size 為1,表示該box 的大小為large size,真正的size 值要在large size 域上得到(實際上只有“mdat”類型的box 才有可能用到large size);如果size 為0,則表示該box 為文件的最后一個box,文件結尾即為該box結尾(同樣只存在于“mdat”類型的box中)。size后面是32位的box type,一般是4 個字符,如“ftyp”“moov”“trak”等等,這些box type都是已經預定義好的,分別表示固定的意義[2]。Box 中可以包含一系列子box,這種box 被稱為container box。在子box 中,header box 作為首個子box 緊隨container box 出現。Fullbox 是box 的擴展,box 結構的基礎上在header 中增加8 位version 和24 位flags。sample:video sample即為一幀視頻,或一組連續視頻幀,audio sample 即為一段連續的壓縮音頻,它們統稱sample。MP4 文件數據存儲使用大端字節序。MP4 格式的官方文件后綴名是“.MP4”,還有其他以MP4 為基礎的格式,包括:m4v、m4a、m4p、m4b 等等。限于篇幅,本文只講解常見的MP4文件結構。
File Type Box(ftyp)。在MP4文件頭部,首先會有且只有一個“ftyp”類型的box,作為MP4 格式的標志并包含關于文件的一些信息,主要描述文件的版本、兼容協議等內容。
Movie Box(moov)。“moov”類型box 有且只有1 個,一般情況下會緊隨ftyp box 出現,但也有放在文件末尾的。……