Читайте также:
|
|
MP3-файл состоит из нескольких фрагментов (фреймов) MP3, которые, в свою очередь, состоят из заголовка и блока данных. Такая последовательность фрагментов называется элементарным потоком. Фрагменты не являются независимыми элементами («резервуар байт»), и поэтому не могут быть извлечены произвольно.
Рисунок 2.1 – Структура формата MP3
Блок данных MP3-файла содержит сжатую аудио информацию в виде частот и амплитуд. Заголовок MP3 состоит из маркера, который служит для нахождения верного MP3-фрагмента. За ним следует бит, показывающий, что используется стандарт MPEG и два бита, показывающие использование layer 3; другими словами, это определяет MPEG-1 Audio Layer 3 или MP3 (см. рис. 2.1). Последующие значения могут варьироваться в зависимости от типа MP3-файла. Стандарт ISO/IEC 11172-3 [12] определяет диапазон значений для каждой секции заголовка, вместе с общей его спецификацией. Большинство MP3 файлов в настоящий момент содержат ID3-метаданные, которые предшествуют или следуют за MP3-фрагментом.
Теги [12] (от англ. tag — ярлык, метка, бирка) — метки в границах MP3-файла (в начале и/или в конце). В них может быть записана информация об авторстве, альбоме, годе выпуска и прочая информация о треке. В более поздних версиях тегов возможно хранение обложек альбомов и тексты песни. Существуют различные версии тегов. Тот, который используется при написании программы, представлен следующим пунктом.
ID3 [12] (от англ. Identify an MP3) — формат метаданных, наиболее часто используемый в звуковых файлах в формате MP3. ID3 подпись содержит данные о названии трека, альбома, имени исполнителя и т. д., которые используются мультимедиапроигрывателями и другими программами, а также аппаратными проигрывателями, для отображения информации о файле и автоматического упорядочивания аудиоколлекции.
После создания MP3 формата появилась проблема с хранением данных о музыкальном файле. В MP3 это никак не предусматривалось. В 1996 Эрику Кэмпу [12] пришла идея добавить участок памяти в файл, чтобы решить эту проблему.
Первая версия ID3-тегов занимала всего 128 байтов, начинающихся со строки TAG (см. рис. 2.2). Тег помещался в конец файла для поддержания совместимости с ранними проигрывателями. Некоторые из них издавали небольшой шум, когда пытались прочесть тег, но большинство игнорировали его. Современные проигрыватели корректно воспринимают эту информацию.
Рисунок 2.2 – Структура формата ID3V1
Поскольку для данных отводилось немного места, в таких тегах можно было хранить только базовые сведения о песне: название, альбом, исполнитель, комментарий, по 30 байт на каждое поле, 4 байта для хранения года и одного байта под жанр, который можно было выбрать из заранее определённого списка из 80 значений (позднее Winamp расширил список своими 68 значениями). Если названия песен или альбомов содержали более тридцати символов, они обрезались. Конечно, из-за ограничений по размеру ни о каких расширенных возможностях хранения метаданных не могло быть и речи.
Единственное усовершенствование, которое было представлено в версии 1.1, было предложено Майклом Мутшлером (Michael Mutschler) в 1997: так как поле под комментарий всё равно слишком мало для хранения чего-либо полезного, было решено сократить его на два байта, чтобы использовать их для хранения номера трека.
ID3v1 много критиковали за ряд проблем. Во-первых, поля были слишком небольшими для большинства информации, которой им предстояло хранить. 30 байт не хватало для длинных названий, они урезались.
ID3v1 также не хватало интернационализации. Он утверждал, что все строки должны храниться в ISO 8859-1 [12], но на практике пользователи часто используют национальную кодировку, поэтому нередко им приходилось видеть непонятные символы.
Дата добавления: 2015-07-25; просмотров: 210 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Обзор существующего программного обеспечения | | | Ethernet |