QuickTime文件格式解析
QuickTime文件格式解析
Peter Lee 2008-06-14
?
一、簡介
QuickTime是Apple公司開發(fā)的一套完整的多媒體平臺架構(gòu),可以用來進行多種媒體的創(chuàng)建,生產(chǎn),和分發(fā),并為這一過程提供端到端的支持:包括媒體的實時捕捉,以編程的方式合成媒體,導(dǎo)入和導(dǎo)出現(xiàn)有的媒體,還有編輯和制作,壓縮,分發(fā),以及用戶回放等多個環(huán)節(jié)。QuickTime文件格式是QuickTime整個架構(gòu)體系中的一環(huán),非常基礎(chǔ)和重要的一環(huán)。QuickTime的多媒體架構(gòu)應(yīng)用于Mac OS和Windows系統(tǒng)上,而QuickTime文件格式是平臺無關(guān)的,可以應(yīng)用于各類系統(tǒng)。常見的采用QuickTime文件格式的擴展名有:mov, qt, mp4, m4v, m4a, m4p, m4b等。
?
二、原子
原子是QuickTime用來構(gòu)建等級數(shù)據(jù)結(jié)構(gòu)的基本容器。新創(chuàng)建的QuickTime原子就象樹的根。隨后的每個原子都包含在其中并且包含數(shù)據(jù)和其它原子。如果一個QuickTime原子包含其它原子,就被叫做父原子,包含在其中的原子就叫做葉原子。
1、簡單原子
原子包含一個原子頭,原子頭后面是原子數(shù)據(jù)。原子頭包含原子的尺寸和類型字段,用于表示原子的字節(jié)尺寸和類型信息;它還可能包含一個擴展的尺寸字段,該字段以64位整數(shù)的形式給出了一個大原子的尺寸。原子結(jié)構(gòu)如圖1所示。
?
圖1 原子結(jié)構(gòu)圖
?
2、QT原子
原子的特點是:簡單、抽象。QuickTime文件格式中的所有數(shù)據(jù)及信息都可以用原子和原子之間的嵌套關(guān)系來表達。然而,基本原子的缺點是,當應(yīng)用程序遇到未知的原子類型(atom type)時,將無法確認該原子是否有下一級的子原子,此種情況下,應(yīng)用程序即使對子原子類型是已知的,也無法進行解析。
QT原子是一種增強了的數(shù)據(jù)結(jié)構(gòu),它提供了一種更加通用的存儲格式,并且消除了一些在使用簡單原子時會出現(xiàn)的不明確的地方。QT原子中,根原子atom type項統(tǒng)一設(shè)置為“sean”。QT原子在簡單原子的基礎(chǔ)上,增加了原子ID和子原子數(shù)目。QT原子的結(jié)構(gòu)如下圖2所示。
?
圖2 QT原子結(jié)構(gòu)圖
?
3、常見的頂層原子類型
·?????????????? 'moov'
·?????????????? 'mdat'
·?????????????? 'free'
·?????????????? 'junk'
·?????????????? 'pnot'
·?????????????? 'skip'
·?????????????? 'wide'
·?????????????? 'pict'
·?????????????? 'ftyp'
·?????????????? 'uuid' : Used by Sony's MSNV brand of MP4
?
?
圖3 QuickTime文件結(jié)構(gòu)示例
三、文件結(jié)構(gòu)實例解析
圖3所示的是,用MovSpot對一個3gp文件分析得到的樹狀結(jié)構(gòu)圖。圖3中,ftyp指示了文件類型信息,mdat包含了媒體數(shù)據(jù)信息,moov是movie atom,包含了track, video ,audio等一系列的頭信息。圖3 QuickTime文件結(jié)構(gòu)示例 2、Movie AtomMovie atom是非常重要的一個原子,其結(jié)構(gòu)示例如圖4所示,我們可以將圖3的層次圖與圖4進行對照分析。
圖4 movie atom結(jié)構(gòu)示例
?
四、相關(guān)資料
1、文檔資料
Quicktime Wiki資料,簡潔明了
http://wiki.multimedia.cx/index.php?title=QuickTime_container
?
Quicktime開發(fā)者站點的官方網(wǎng)站,英文資料,可以下載到相應(yīng)的pdf文檔。
http://developer.apple.com/documentation/QuickTime/QTFF/QTFFPreface/chapter_1_section_1.html
?
Quicktime開發(fā)者站點中文站,可以看到中文的資料,不過更新時間很早了2001-03-01,翻譯的也不專業(yè)。
http://developer.apple.com.cn/Documentation/QuickTime/QTFF/index.html
?
2、分析工具
MovSpot.exe
http://blog.csdn.net/sunshine1314/archive/2007/09/22/1795739.aspx
?
3、相關(guān)源碼
Bento4 MP4 Class Library/SDK
http://bento4.sourceforge.net/
?
?
本文來自CSDN博客,轉(zhuǎn)載請標明出處:http://blog.csdn.net/sunshine1314/archive/2008/06/14/2547275.aspx
總結(jié)
以上是生活随笔為你收集整理的QuickTime文件格式解析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。