1

我正处于为 mp4 文件尤其是 iTunes AAC 文件开发标签编辑器的早期阶段。在做了一些窥探之后,似乎文件的结构并不像我最初想象的那么复杂,并且构建在一种树中,如下所示

4 字节 [Atom 长度] 4 字节 [Atom 名称] X 字节 [Atom 数据]

原子的数据与长度一样大,可以包含数据(信息)或另一个原子。我想要解决的是如何确定数据是信息还是实际原子。任何见解将不胜感激。

4

1 回答 1

1

经过大量窥探之后,似乎确定一个节点是否导致数据或另一个节点的唯一方法是了解数据结构。因为我只对包含的标签感兴趣,所以结构很容易弄清楚。所有标签都包含在以下层次结构中:

moov.udta.meta.ilst

在深入研究 ilst 节点时,每个标签都表示为一个子原子,其名称决定了它包含的数据。至于实际数据,每个子原子都有自己的子原子,其中包含实际信息和一个标志,说明它是什么类型的信息,例如文本或数字,所以总而言之,它看起来像这样:

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

当然,这仍然存在存储在uuid atom 节点中的自制标签的问题,索尼等公司使用这些标签向文件添加更多信息。我想uuid中的每个孩子都以与ilst相同的方式存储其孩子,但我不能确定。

于 2010-04-13T13:28:25.947 回答