Вопрос о MP4 (AAC) Binary Tree - PullRequest
       55

Вопрос о MP4 (AAC) Binary Tree

1 голос
/ 13 апреля 2010

Я на самой ранней стадии работы над редактором тегов для файлов mp4 и, более конкретно, для файлов iTunes AAC. После некоторого прослушивания кажется, что структура файла не так сложна, как я думал, и построена в виде дерева, подобного следующему

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

Данные атома равны длине и могут содержать данные (информацию) или другой атом. Я пытаюсь понять, как определить, являются ли данные информацией или фактическим атомом. Любое понимание будет высоко ценится.

1 Ответ

1 голос
/ 13 апреля 2010

После большого количества слежки кажется единственным способом определить, ведет ли узел к данным или другому узлу, зная структуру данных. Поскольку меня интересуют только теги, содержащиеся в структуре, довольно легко понять. Все теги содержатся в следующей иерархии:

moov.udta.meta.ilst

При копании в узле ilst каждый тег представляется как дочерний атом, имя которого определяет, какие данные он содержит. Что касается фактических данных, то каждый дочерний атом несет своего собственного дочернего элемента, который содержит фактическую информацию и флаг относительно того, какого рода информация это, например, текст или числа, так что в целом это выглядит примерно так:

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

Конечно, это все еще оставляет проблему с самодельными тегами, хранящимися в атомном узле uuid , который компании, такие как Sony, используют для добавления дополнительной информации в файл. Я мог бы представить, что каждый ребенок в uuid хранит своих детей так же, как ilst , но я не уверен.

...