ID3 (метаданные)
16-06-2009 01:06
к комментариям - к полной версии
- понравилось!
ID3 (от англ. Identify a MP3) — формат метаданных, наиболее часто используемый в звуковых файлах в формате MP3. ID3 подпись содержит данные о названии трека, альбома, имени исполнителя и т. д., которые используются мультимедиа‐проигрывателями и другими программами, а также аппаратными проигрывателями, для отображения информации о файле и автоматического упорядочивания аудиоколлекции.
Существует 2 несовместимых версии ID3: ID3v1 и ID3v2.
ID3v1. Тег, просто тег
В 1996 году программист Эрик Кемп (Eric Kemp), предложил добавлять к MP3-файлу небольшой «кусочек» данных размером 128 байт. Эта 128-байтовая добавка была названа ID3 TAG и получила версию v1. Если не считать незначительных доработок, она до сегодняшнего дня сохранилась в оригинальном виде.
ID3-тег — это набор бинарных данных, в которых и содержится вся нужная для идентификации содержимого файла информация. Вся соль разработки Кемпа заключается в том, что тег располагается в конце файла и поэтому не влияет на совместимость MP3 с разными плеерами. Несовместимый проигрыватель просто-напросто не воспринимает эти данные как часть файла и не пытается их «воспроизвести».
Минимальный размер, четкая структура и простота ID3-тега позволили просто и удобно хранить всю достаточную для идентификации MP3-файла информацию. Эта информация неотделима от самого файла и может без проблем путешествовать с одного компьютера на другой. К тому же она прекрасно отображается программами даже в разных операционных системах.
Структурно ID3-тег самой первой версии состоит из названия композиции (Title), исполнителя (Artist), названия альбома (Album), жанра (Genre), года записи (Year) и комментария (Comment). На названия песни, альбома, имя исполнителя и комментарии в структуре тега отводится по 30 байт. Для года записи отведено четыре байта, и один байт используется для обозначения музыкального жанра. На первый взгляд, одного байта, отведенного под жанр, кажется недостаточно, но это не так. Его значение является номером жанра во встроенном списке. Список, созданный Эриком Кемпом, содержит 80 записей с номерами от 0 до 79. Кстати, один из самых распространенных на ПК проигрывателей — Winamp — использует другой список, из 148 записей с дополнительными жанрами.
Если сложить все отведенные под поля байты, то в итоге получается число 125. «Потерявшиеся» три байта — само слово TAG, которым начинается блок данных: это своеобразная цифровая подпись.
В 1997 году ID3-тег подвергся некоторой модификации, получив версию ID3v1.1. Все незаполненные поля в теге заменялись нулевыми байтами, для того чтобы программы, использующие тег ID3v1, прекращали чтение поля, встретив нулевой байт. Изменилось и поле комментария — его урезали до 28 символов. «Сэкономленные» 2 символа перешли в новое поле — номер дорожки (track) CD, с которого была записана музыка.
Несмотря на простоту ID3v1 (а также его модификации v1.1), у этого формата есть и ряд недостатков. Во-первых, это малый размер полей для названий композиций, альбома и исполнителя, так что длинные названия вписать не получается.
Во-вторых, спорный список жанров: он не содержит многих распространенных музыкальных направлений, но зато в нем встречается экзотика вроде христианского рэпа.
Наконец, ID3v1 недостает «интернациональности». Теоретически текст полей имеет кодировку ISO-8859-1, а на практике используется «родная» кодировка пользователя, заполняющего поля тега. Это приводит к знакомым всем «кракозябрам» при отображении текста в других кодировках.
ID3v2.x. Новый вариант?
Попытки исправить недостатки стандарта привели к созданию новой версии ID3v2. Сходство этой версии с предыдущей осталось только в названии. Так, теги версии 2.х зачастую располагаются в начале MP3-файла и имеют нефиксированный размер.
Структура тега тоже значительно изменилась. В отличие от простых полей v1, ID3-теги «нового поколения» состоят из так называемых окон (frames), каждое из которых имеет размер 256 байт. Фрейм представляет собой кусочек данных (в кодировке Unicode) и начинается с идентификатора, который указывает на то, что именно хранится в данном окне.
В дополнение к значительно более длинным строковым записям в ID3v2.х появились элементы, которые напрочь отсутствовали в ID3v1.x. Это, например, отдельный уровень громкости для каждого файла, специально настроенный эквалайзер, детальная информация о файле, добавленная автором композиции, графический объект (обложка альбома), URL издателя и автора, текст песни, битрейт и прочее.
В поздних версиях стандарта ID3v2 содержится 84 типа фреймов. Кроме того, пользователь при помощи программ редактирования тегов может задавать свои собственные типы фреймов.
Всего версий стандарта ID3v2 три: v2.2, v2.3 и v2.4. Различия по части функциональности у них минимальные (так, в v2.3 идентификатор фрейма был увеличен до 4 символов, а в v2.4 для текстовых полей стала использоваться кодировка UTF-8), но совместимости это отнюдь не добавляет. Проблема заключается в значительном различии структуры фреймов даже в рамках одной и той же версии. К примеру, фрейм с названием TIT2 (содержащий информацию о названии композиции) и фрейм USLT (текст песни) требуют разных алгоритмов для извлечения данных. Что уж говорить о различии структуры фреймов в разных версиях!
Именно поэтому даже на фоне новых «удобств» ID3-тегов версии 2.х вполне закономерно выглядит тот факт, что большинство MP3-плееров распознают ID3-теги «на старый манер», то есть игнорируя нововведения последних версий. Исключением можно считать только такие проигрыватели, как Amarok или Foobar2000, которые по умолчанию пишут теги в стандарте ID3v2.4.
ID3-теги в мобильных устройствах.
Производители мобильных устройств, в частности MP3-плееров и телефонов, поддерживающих воспроизведение аудиофайлов распространенных форматов, конечно, не упускают возможности оснастить свои продукты толковой реализацией ID3-тегов. Подавляющее большинство современных устройств умеет правильно и корректно отображать теги разных версий.
Индустрия пришла к этому не сразу, так как подводных камней на этом пути довольно много. Так, версия ID3v1 (и v1.1) плохо поддерживала кодировки каких-либо языков кроме английского. Это влекло за собой проблемы унификации. Так, ранние версии программного обеспечения плееров и телефонов напрочь отказывались показывать прописанные кириллицей метаданные. Но в последнее время эта проблема была решена. Это заслуга как появления новых версий ID3-тегов (в частности v2.х), так и стараний многих компаний-производителей предоставлять для локальных рынков разных стран свои сертифицированные версии устройств.
При выборе любого устройства, умеющего воспроизводить музыку в формате MP3 (или WMA или OGG — не важно), нужно внимательно и дотошно изучить предоставленную производителем на этот счет информацию. Кстати, корректная реализация тегов до сих пор используется многими брендами как конкурентное преимущество.
С легкой руки Apple ID3-теги стали использоваться в мобильных устройствах для более наглядной структуризации контента. Идеологию iPod — навигация не по файлам и папкам, а по метаданным композиций — сегодня используют практически все «топовые» производители мультимедийных устройств. Не отстают от них и разработчики мобильных телефонов: удобным «айподоподобным» интерфейсом может похвастаться весь модельный ряд Walkman от Sony Ericsson, а также музыкальные телефоны и смартфоны Nokia.
Экзотика
ID3-теги являются самым распространенным стандартом хранения информации о содержимом файлов популярных аудиоформатов. Но, само собой, далеко не единственным. Упоминания достойны как минимум два из них.
Это APE, который по структуре отличается от ID3 крайне незначительно. Впервые этот вариант тегов был использован в аудиофайлах формата Musepack. В дальнейшем благодаря своей простоте и гибкости он был адаптирован как основной формат тегов для аудиофайлов WavPack и OptimFROG. С версии 3.99 APE появился и в Monkey's Audio.
Последняя версия стандарта (APEv2) поддерживает Unicode, используя UTF-8 для ключей и для их значений. К сожалению, APE изначально не был ориентирован на использование в MP3 и поэтому широкого распространения не получил.
Похожая судьба ожидала и специально разработанный формат тегов Vorbis comment. Он используется в файлах формата Ogg Vorbis и, за редким исключением, в FLAC и Speex.
Применение в других форматах и альтернативы
Хотя ID3 был изобретён для MP3, в этом стандарте можно хранить теги и в отличных от MP3 и MP3Pro (англ.) форматах файлов. Список тегов же — это вообще независимая часть файла и может использоваться как угодно. На практике, единственный формат, который широко использует ID3v2, это AIFF (англ.), где тег хранится внутри RIFF области под именем «ID3». То же самое воплощено в WAV, но не используется. Единственная теговая система, широко использующаяся WAV, это «Broadcast WAV». Форматы Windows media (ASF, WMA, WMV) имеют свои форматы тегов, но также поддерживают ID3, включенный как атрибут.
MP4 (англ.) также предполагает включение ID3, но также не поддерживается широко. Другие форматы, основанные на контейнерах, используют собственные теговые системы. Примером является Vorbis, который использует Vorbis comment. Добавление туда ID3 нарушит структуру контейнера.
Gracenote CDDB
В большинстве случаев дорожки аудио CD не содержат никаких данных о своем содержимом. По той простой причине, что обычным потребителям этого и не требуется: обложка с названием и списком треков и так есть. Но когда речь идет о прослушивании CD на компьютере или, что важнее, о копировании треков в MP3 (или в любой другой сжатый формат), точная информация об исполнителе, названии альбома и композиций очень важна. Иначе пользователь рискует остаться с кучей папок «Unknown Album» и «Unknown Artists», в которых расположены безымянные файлы.
Именно с целью обеспечить для широкого круга пользователей доступ к информации о том или ином компакт-диске была создана централизованная база данных музыкальных CD, доступная через интернет. Она получила название CDDB (англ. Compact Disc Database). Первоначально база данных CDDB была свободной и пополнялась добровольцами, но затем условия лицензирования были изменены. Сейчас база данных принадлежит компании Gracenote. Компания установила ограничения, которые многими рассматриваются как неприемлемые.
Это привело к созданию альтернативного свободного сервиса FreeDB, использующего те же принципы, что и первоначальный вариант CDDB. Существуют и другие базы данных (как свободные, так и коммерческие) предоставляющие аналогичную информацию о компакт-дисках. Часто термин CDDB используется для обозначения всех таких сервисов.
Принцип функционирования Gracenote CDDB (как и других подобных БД) прост. Клиентская программа (это может быть медиапроигрыватель, утилита записи компакт дисков и т.д.) вычисляет идентификатор компакт-диска и делает запрос к этой базе данных. После запроса CDDB возвращает требуемые данные (информация об исполнителе, названиях композиций, годе выпуска и т.п.), которые и прописываются в соответствующие поля тегов (для MP3) или сохраняются в формате используемой программы для аудио CD.
Для идентификации компакт-диска используется идентификатор (т.н. discid), который вычисляется на основе информации о длительности композиций (треков), записанных на диске. Эту информацию клиентская программа получает из оглавления — специальной области данных на диске. Идентификатор используется для того, чтобы найти в базе данных информацию о диске и о записанных на нем композициях. Таким образом, в базе данных хранятся сведения о диске целиком, а не об отдельных композициях. Если, например, записать новый диск, переставив местами некоторые треки или добавив новые, то информация о них найдена не будет — это, пожалуй, главный недостаток подобного рода сервисов.
Редактирование ID3-тегов
Отредактировать ID3-теги можно несколькими способами. Самый простой из них — изменение данных файла встроенными средствами Windows XP (правый клик мышкой по файлу, пункт «Свойства» в выпадающем меню, вкладка «Сводка»). Второй вариант — редактирование тегов при помощи программ — проигрывателей аудио (те же Winamp или Windows Media Player вполне позволяют изменить теги для одного или нескольких выбранных файлов).
Но эти простые и непритязательные способы имеют один серьезный недостаток. Иногда требуется добавить новый или отредактировать имеющийся ID3-тег для значительного количества файлов (скажем, для нескольких тысяч). Делать это вручную и по одному — смерти подобно и умопомешательством чревато. Без приложений, которые способны обеспечить пакетную обработку тегов, ну никак не обойтись.
В основном их функциональность не выходит за рамки работы с метаданными, но все же встречаются и другие полезные возможности, расширяющие фронт применения этих утилит. Специальных программ, предназначенных для работы с тегами, очень и очень много.
вверх^
к полной версии
понравилось!
в evernote