peter lee 2008-06-14
一、簡介
二、原子
原子是quicktime用來構建等級資料結構的基本容器。新建立的quicktime原子就象樹的根。隨後的每個原子都包含在其中並且包含資料和其它原子。如果乙個quicktime原子包含其它原子,就被叫做父原子,包含在其中的原子就叫做葉原子。
1、簡單原子
原子包含乙個原子頭,原子頭後面是原子資料。原子頭包含原子的尺寸和型別字段,用於表示原子的位元組尺寸和型別資訊;它還可能包含乙個擴充套件的尺寸字段,該字段以64位整數的形式給出了乙個大原子的尺寸。原子結構如圖1所示。
圖1 原子結構圖
2、qt原子
原子的特點是:簡單、抽象。quicktime檔案格式中的所有資料及資訊都可以用原子和原子之間的巢狀關係來表達。然而,基本原子的缺點是,當應用程式遇到未知的原子型別(atom type)時,將無法確認該原子是否有下一級的子原子,此種情況下,應用程式即使對子原子型別是已知的,也無法進行解析。
qt原子是一種增強了的資料結構,它提供了一種更加通用的儲存格式,並且消除了一些在使用簡單原子時會出現的不明確的地方。qt原子中,根原子atom type項統一設定為「sean
」。qt原子在簡單原子的基礎上,增加了原子id和子原子數目。qt原子的結構如下圖2所示。
圖2 qt原子結構圖
3、常見的頂層原子型別
· 'moov'
· 'mdat'
· 'free'
· 'junk'
· 'pnot'
· 'skip'
· 'wide'
· 'pict'
· 'ftyp'
· 'uuid' : used by sony's msnv brand of mp4
三、檔案結構例項解析
圖3所示的是,用movspot對乙個3gp檔案分析得到的樹狀結構圖。圖3中,ftyp指示了檔案型別資訊,mdat包含了**資料資訊,moov是movie atom,包含了track, video ,audio等一系列的頭資訊。
圖3 quicktime檔案結構示例
2、movie atom
movie atom是非常重要的乙個原子,其結構示例如圖4所示,我們可以將圖3的層次圖與圖4進行對照分析。

圖4 movie atom結構示例
四、相關資料
1、文件資料
quicktime wiki資料,簡潔明瞭
quicktime開發者站點中文站,可以看到中文的資料,不過更新時間很早了2001-03-01,翻譯的也不專業。
2、分析工具
movspot.exe
3、相關原始碼
bento4 mp4 class library/sdk
ATT格式彙編 mov與lea的區別
資料傳送指令,目的運算元不能是立即數,資料不能從記憶體直接傳送到記憶體 若需要,轉化成2條指令,從內訪問資料到暫存器,從暫存器到記憶體 lea load effective address 其實是mov的變形,它的源運算元看上去是乙個記憶體引用,但並非從指定位置讀入資料,而是將有效位址寫入到目的運算...
mov指令詳解
mov指令可以在cpu內或cpu和儲存器之間傳送字或位元組,它傳送的資訊可以從暫存器到暫存器,立即數到暫存器,立即數到儲存單元,從儲存單元到暫存器,從暫存器到儲存單元,從暫存器或儲存單元到除cs外的段暫存器 注意立即數不能直接送段暫存器 從段暫存器到暫存器或儲存單元。但是注意 1 mov指令中的源運...
傳送指令 MOV
功能 把源運算元傳送給目的運算元,相當於賦值運算。語法 mov 目的運算元 a 源運算元 b 即a b 擴充套件 mov sx 先符號擴充套件,再傳送 mov zx,先零擴充套件,再傳送 格式 mov reg mem reg mem imm 其中,reg代表暫存器,mem代表儲存器,imm代表立即數...