2010-04-12 58 views
1

我正處於mp4文件的標籤編輯器,特別是iTunes AAC的標籤編輯器的初期階段。做一些窺探後周圍似乎文件的結構是不是因爲我首先想到的是複雜的,是建立在一種樹像下面關於MP4(AAC)Binary Tree的問題

 
4 Bytes [Atom Length] 4 Bytes [Atom Name] X Bytes [Atom Data] 

一個原子的數據作爲長度大,可以包含數據(信息)或其他原子。我試圖解決的是如何確定數據是信息還是實際原子。任何有識之士將不勝感激。

回答

1

經過大量的窺探之後,似乎確定節點是否導致數據或其他節點的唯一方法是瞭解數據結構。由於我只對包含的標籤感興趣,所以結構很容易理解。所有標籤都包含在以下層次:

moov.udta.meta.ilst 

當鑽研每個標籤被表示爲一個孩子原子誰的名字決定了數據所包含的ILST節點。至於實際數據,每個子原子都攜帶一個自己的孩子,其中包含實際信息和標記,例如文本或數字等信息,因此總體上看起來像這樣:

moov.udta.meta.ilst.[atom size][atom name].[data] 

當然,這仍然存在一個問題,那就是存儲在原始節點上的自制標籤,索尼等公司使用該標籤向文件添加更多信息。我會想像uuid中的每個孩子以相同的方式存儲其子女ilst但我無法確定。