Как файлы (особенно аудиофайлы) организованы внутри? - PullRequest
3 голосов
/ 01 мая 2010

Я пытаюсь уловить это: Apple говорит о «пакетах» в аудиофайлах, и есть причудливая функция AudioFileReadPackets, которая принимает множество аргументов. Один из них указывает «стартовый пакет», а другой - количество пакетов, которые вы хотите прочитать.

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

Это правильно? Это относится к любому виду файлов? Так на самом деле выглядят файлы?

Ответы [ 5 ]

1 голос
/ 01 мая 2010

Файлы содержат все, что приложение, которое их создало, решило поместить в них. Файлы по сути представляют собой последовательность байтов. Любая дальнейшая организация - это семантическое различие, сделанное программой, которая их создала. Неверно думать обо всех файлах, содержащих одинаковую структуру.

Тем не менее, некоторые проблемы с хранением данных достаточно похожи, чтобы их можно было решить аналогичным образом, и шаблоны начинают появляться. Разделение данных на записи или пакеты является примером этого.

1 голос
/ 01 мая 2010

Вопрос (даже с оговоркой «особенно аудиофайлы») слишком широк; разные форматы файлов, ну разные!

Таким образом, чтобы ответить на вопрос, вам сначала нужно будет указать конкретный тип файла; тогда ответ на вопрос будет неизменно смотреть на его уточнение. Собственные форматы могут не иметь общедоступной спецификации.

Спецификации для многих файлов (официальных и обратных) можно найти на блестящем сайте Формат Wotsit .

AAC, используемый Apple iTunes и другими организациями, определяется ISO / IEC 13818-7: 2006 . Документ обойдется вам в 252 швейцарских франка (около 233 долларов США)! Вы должны быть действительно заинтересованы (коммерчески) платить это, а не использовать существующий кодек AAC.

«Пакет» - это термин, обычно используемый при передаче данных, поэтому он может быть более применим к потоковой передаче звука, чем к аудиофайлам, где «кадр» может быть более подходящим, или для файлов данных в целом «запись», но Терминология является гибкой, потому что она означает, что человек, который написал это, думал, что это означало! Если достаточное количество людей неправильно использует термин, он по существу становится переопределенным (или многократно определенным), чтобы означать это, так что я бы не стал слишком зацикливаться на этом. Автор, несомненно, использовал его для определения единицы , которая имеет определенный формат в файле, в котором несколько таких единиц повторяются последовательно.

1 голос
/ 01 мая 2010

«Пакет» выглядит для меня как специфическая для Apple терминология. Я просто много читал и кодировал для обработки файлов WAV и MP3, и я не думаю, что когда-то видел термин «пакет».

0 голосов
/ 01 мая 2010

Для MP3 (и MP1, MP2) файл состоит из кадров. И да, ваше понимание верно - в файлах VBR пакеты имеют разный размер. В файлах WAV пакеты имеют одинаковую длину, если память служит (я написал декодер / проигрыватель 11 лет назад).

0 голосов
/ 01 мая 2010

Это в значительной степени то, на что похожи аудиофайлы: последовательность фрагментов данных или кадров. AudioFileReadPacketData и AudioFileReadPackets защищают вас, например, от того, какой размер кадра может быть в байтах (потому что вы можете читать из файла WAV, который имеет структуру, отличную от файла MP3, или ваш файл MP3 использует переменный бит ставка).

Концепция фреймов вообще не применима ни к какому файлу, но тогда вы не будете использовать API Audio File Services для доступа к любому старому файлу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...