Id3 tag что это
Перейти к содержимому

Id3 tag что это

  • автор:

What is an ID3 Tag?

An ID3 tag is a type of metadata container used to store information into a media file (traditionally an MP3 audio file). The ID3 tags could include a title, an album title, the artist (author), genre, cover art, the year recorded and other details that are useful for the listener of your show.

For example, this is the information contained in the ID3 tag.

Populating your media files with an ID3 tag will ensure that your media is displayed correctly on most portable media players and software based audio players. For example, some mobile apps will pull the ID3 tag instead of pulling the details from the RSS feed (particularly the artwork).

You should be sure that you use ID3v2 tags, so that the headers are located at the start of the podcast (not at the end). This allows players to use the ID3 data ahead of streaming time without downloading the full podcast file.

In Podbean.com, we require that you use ID3v2 tags and the artwork included must be no larger than 300 x 300.

There are many applications available to edit the ID3 tags on your audio files. We have an FAQ that tells you how to edit your ID3 tags using Apple Podcasts, which is free to use. You can do this or use any application that supports ID3v2 tags, and then upload your file with the ID3v2 tags to Podbean to distribute as usual.

Разновидности медиатегов

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

Какие же разновидности верных этой парадигме тегов распространены в мире? Сегодня три типа компрессированных цифровых аудиофайлов можно причислить к лидерам: это, конечно же, MP3, а также AAC, используемый компанией Apple, и WMA, протеже Microsoft. И каждый из них имеет собственную систему тегов. Интернет-аудиофилы и поклонники Open-source имеют своих любимцев: формат Monkey Audio, сокращенно APE, и форматы OGG и FLAC, разработанные Xiph.org. И Monkey Audio, и форматы Xiph.org также могут похвастаться своей системой тегов. Наконец, один из самых малораспространенных сегодня в потребительской электронике форматов, ATRAC, принадлежит компании Sony и также имеет теговую систему.

В итоге получаем шесть более-менее известных публике типов метаданных. Поговорим о них поподробнее.

ID3 tag

MP3-файлы продолжают занимать первое место по распространенности среди сжатых аудиоформатов, причем с солидным отрывом, несмотря на более чем преклонный возраст. Самые первые теги появились именно здесь. Их название – ID3-теги – стало настолько популярным, что часто употребляется для обозначения тегов вообще, вне зависимости от того, идет ли речь об MP3, WMA, AAC или любом другом файле. А появилось оно от аббревиатуры: Identification Data for Studio3 (идентификационные данные для Studio3). Studio3 была программой Эрика Кемпа, автора первого тега.

Долгая жизнь ID3-тегов обусловила то, что к настоящему времени они уже успели сменить изрядное число версий. Наиболее важным был переход от первой версии v1 ко второй v2.

ID3 v1

Самый первый тег для аудиофайлов появился в 1996 году и был очень скромен по своим возможностям.

Схема ID3 v1 тега с id3.org

Во-первых, доступный для тега объем информации был ограничен 128 байтами (именно байтами!).

Song Title Название композиции 30 знаков
Artist Исполнитель 30 знаков
Album Альбом 30 знаков
Year Год выпуска 4 знака
Comment Комментарий 30 знаков
Genre Жанр 1 байт

Для жанров создатель ID3 v1 подготовил список из 80 позиций, присвоив каждому из них порядковый номер от 0 до 79, который и заносился в один-единственный жанровый байт. Список этот, естественно, устроил не всех, критики замечали, что он несбалансирован, содержит много экзотических и маргинальных жанров, а некоторые распространенные классические жанры оказались обойдены. Но что можно было ожидать от одного человека с несколькими товарищами, не могли же они быть музыкальной энциклопедией?

Число категорий позже выросло до семи за счет хитро добавленной позиции «номер трека в альбоме», такой обновленный тег получил название ID3 v1.1.

В-третьих, рамки категорий были жесткими, заданными раз и навсегда. Если у вас осталось свободное место в графе «название песни» (что случалось часто), то использовать его для того, чтобы ввести имя исполнителя длиннее 30 символов, было нельзя. Оставшееся место просто заполнялось нулями.

В-четвертых, тег размещался в конце файла. Это было сделано для того, чтобы программы-проигрыватели того времени не сходили с ума при попытке открыть такой файл. Чем это было плохо? Плохо это было при потоковой скачке файла – чтобы получить полную информацию о композиции, приходилось сначала скачать ее целиком.

В-пятых, для текстовой информации по умолчанию использовалась кодировка ISO-8859-1. Если в теге использовалась, к примеру, кириллическая кодировка ISO-8859-5, то никакой возможности сообщить об этом программе-проигрывателю не было – место под это в теге не предусмотрено. Это делало невозможным создание универсальных проигрывателей с автоматическим распознанием кодировки, для каждой не англоязычной страны было необходимо создавать свою версию. В случае MP3-плееров этим утруждали себя далеко не все, в результате пользователям приходилось любоваться на «кракозябры». Отсюда популярный среди покупателей плееров вопрос: «Поддерживает ли он русские теги?» (т.е. теги в кириллической ISO-8859-5 кодировке).

Рамки первой версии ID3 MP3-файлам стали тесны довольно быстро. Пользователи желали видеть намного более полную информацию о своей музыке, тридцати символов на название, исполнителя и альбом хватало не всегда, не говоря уж об остальных недостатках.

Расширением возможностей ID3 v1 позже стал Lyrics3 – дополнительный тег для слов песен. Он шел перед самим ID3-тегом. Этот тег был позже расширен до версии 2, которая, помимо собственно слов песни, могла включать информацию о композиции (исполнитель, альбом, название), причем без ограничений в 30 символов. Слова песни было возможно синхронизировать с аудио, присваивая им временные метки.

Схема Lyrics3 v2 тега с id3.org

Все это, впрочем, было полумерами, развитие Интернета диктовало необходимость в совершенно новом формате. Через два года, в 1998, на свет появился ID3 v2.

ID3 v2

В новой версии было исправлено большинство недостатков. Тег «переехал» в начало файла. Каждая категория получила свой заголовок, благодаря которому их размеры теперь могли меняться, приспосабливаясь под реальный объем информации. В заголовок вошел и бит кодировки для борьбы с кракозябрами. Кроме кодировки ISO-8859 стала доступна и Unicode. Объем, доступный для каждой категории, вырос до 16 мегабайт, общий объем тега ограничен 256 мегабайтами. Для удобства программ сам тег получил заголовок, сообщающий много информации о нем (ну прямо тег для тега): ориентировочное количество категорий и их объемы, использованную кодировку, тип и разрешение графических файлов и многое другое.

Схема ID3 v2 тега с id3.org

Список категорий разросся до гигантских размеров (для экономии места не будем перечислять чисто служебные):

Audio encryption Информация о том, был ли файл закодирован и кем
Attached picture Изображение, обычно Album Art
Comments Комментарии
Commercial frame Здесь содержится коммерческая информация: цена композиции с валютой, логотип компании-продавца и т.п.
Encryption method registration Если файл был закодирован, то здесь сообщается метод кодирования
Equalisation Здесь пользователь может оставить информацию о предпочтительных настройках эквалайзера для этого файла.
Event timing codes Этот тег позволяет создать «карту» композиции с указанием ключевых точек: конца вступления, начало припева и т.п.
General encapsulated object Сюда можно «впихнуть» любой нужный файл
Linked information Здесь можно размещать ссылки на теги в других файлах. К примеру, если все композиции из одного альбома, Album Art можно разместить только в заглавной, а все прочие будут ссылаться на него
Music CD identifier Это идентификатор CD, с которого был скопирован файл
Ownership frame Здесь гордый владелец может написать свое имя
Private frame Создатель файла или разработчик ПО может разместить здесь свою частную информацию
Play counter Счетчик сколько раз файл был проигран
Popularimeter Здесь выставляется рейтинг песни, хороша она или плоха (от 1 до 255)
Position synchronisation frame Информация о месте, на котором пользователь приостановил проигрывание
Relative volume adjustment В этой категории пользователь указывает удобный для него уровень громкости проигрывания данного файла (можно отдельно для каждого канала)
Reverb Здесь можно указать комфортные настройки реверберации (эффекта эха) для данного файла
Signature frame Категория для цифровой подписи
Synchronised lyric/text В этой категории может содержаться текст, синхронизированный с аудиопотоком, к примеру, текст песни
Album/Movie/Show title Название альбома или кинофильма, или шоу, из которого взята композиция
BPM (beats per minute) Музыкальный темп композиции (в битах в минуту)
Composer Имя композитора
Content type Аналог пункта «жанр» в ID3 v1
Copyright message Информация о владельце авторских прав на файл
Encoding time Дата и время, когда данный файл был сжат
Playlist delay Здесь указывается, сколько секунд тишины следует добавлять перед проигрыванием файлов. Равно нулю для композиций, которые переходят одна в другую без пауз (Gapless)
Original release time Дата и время, когда была выпущена оригинальная композиция (к примеру, если данная композиция – кавер)
Recording time Дата и время, когда была записана данная композиция
Release time Дата и время, когда была выпущена данная композиция
Tagging time Дата и время, когда в данном файле были проставлены теги
Encoded by Информация о лице или организации, сжавшей данный файл
Lyricist/Text writer Автор слов песни
File type Тип аудиофайла (Layer I, Layer II, Layer III, MPEG 2.5)
Involved people list Список людей, участвовавших в записи композиции
Content group description Эту категорию можно описать как «поджанр»
Title/songname/content description Название композиции
Subtitle/Description refinement Дополнительная информация к названию композиции
Initial key Тон, с которого начинается композиция
Language(s) Язык слов песни
Length Длина композиции в миллисекундах
Musician credits list Информация о музыкантах, участвовавших в записи
Media type Здесь указывается, на каком носителе была написана эта композиция
Mood Настроение композиции
Original album/movie/show title Название альбома или кинофильма, или шоу, из которого взята оригинальная композиция (к примеру, если данная композиция – кавер)
Original filename Оригинальное имя файла (на случай если оно будет изменено, к примеру, в силу ограничений носителя)
Original lyricist(s)/text writer(s) Имя автора оригинальных слов (к примеру, если данная композиция – кавер)
Original artist(s)/performer(s) Имя оригинального исполнителя (к примеру, если данная композиция – кавер)
File owner/licensee Владелец файла или лицензии
Lead performer(s)/Soloist(s) Ведущий исполнитель/солист
Band/orchestra/accompaniment Коллектив/оркестр/аккомпанемент
Conductor/performer refinement Дирижер
Interpreted, remixed, or otherwise modified by Автор ремикса или измененной версии (если композиция является таковой)
Part of a set Если композиция является частью сета, здесь можно указать какого
Produced notice Информация о владельце авторских прав на оригинальное произведение (а не на данный файл)
Publisher Издатель (обычно – лейбл)
Track number/Position in set Порядковый номер композиции на CD или в сете
Internet radio station name Название интернет-радиостанции
Internet radio station owner Имя владельца интернет-радиостанции
Album sort order Название альбома, применяющееся для нужд сортировки. Полезно, если название начинается с «the» или «a»
Performer sort order Имя исполнителя, применяющееся для нужд сортировки. Полезно, если оно начинается с «the» или «a»
Title sort order Название композиции, применяющееся для нужд сортировки. Полезно, если название начинается с «the» или «a»
ISRC (international standard recording code) Код ISRC (международный стандартный код звукозаписи)
Software/Hardware and settings used for encoding ПО и аппаратура и их настройки, использованные при сжатии файла
Set subtitle Название той части сета, к которой принадлежит композиция
Unique file identifier Уникальный идентификатор файла, служит для СУБД
Terms of use Здесь располагается пользовательское соглашение
Unsynchronised lyric/text transcription Текст (например, слова песни), не синхронизированный с аудиопотоком
Commercial information Эта категория содержит ссылку на страницу в сети Интернет, где может быть приобретена данная композиция
Copyright/Legal information Эта категория содержит ссылку на страницу в сети Интернет, где можно найти информацию о правообладателе
Official audio file webpage Ссылка на официальную страницу данного файла в сети Интернет
Official artist/performer webpage Ссылка на официальную страницу исполнителя в сети Интернет
Official audio source webpage Ссылка на официальную страницу источника данной композиции в сети Интернет (к примеру, на страницу фильма, если песня из фильма)
Official Internet radio station homepage Ссылка на официальную страницу интернет-радиостанции
Payment Ссылка на официальную страницу компании, ответственной за проведение платежей при приобретении композиции
Publishers official webpage Ссылка на официальную страницу издателя (лейбла)
User defined URL link frame Произвольная ссылка пользователя

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

И все же, при всех достоинствах ID3 v2 теги имеют один минус. Их структура фиксирована, количество категорий не подлежит изменению. А ведь пользователь или издатель может захотеть добавить в файл информацию, не предусмотренную даже богатой фантазией разработчиков. В данном случае им придется выкручиваться и импровизировать в рамках дозволенного.

Хотя v2 и поддерживает Unicode, проблемы кракозябр не ушли в прошлое – по старой памяти теги сплошь и рядом продолжают вносить в ISO-8859. По крайней мере, современные плееры могут увидеть, какая кодировка использовалась, по заголовку тега.

Недостатком ID3-тегов в целом является изобилие версий: v1 (две версии), v2 (четыре версии), Lyrics3. Производителям приходится заботиться о поддержке всех этих версий, и не все и не всегда с этим справляются.

ID3 v2 стал большим шагом вперед для аудиотегов. За два года он пережил четыре модификации до версии 2.4 и вот уже семь лет существует без серьезных изменений. Теги новых цифровых файлов – WMA, AAC и пр. – создавались уже не без оглядки на опыт ID3.

WM metadata

Microsoft начала продвижение своего конкурента MP3 – Windows Media Audio, WMA – в 2000 году. Существенным отличием было то, что формат с самого начала позиционировался для интернет-музыки. Поэтому одновременно с разработкой формата были разработаны и теги для него. Они не имеют четкого наименования, иногда ошибочно называются ID3-тегами, иногда WMA-тегами. Так как WMA – только часть стандарта Windows Media, имеет смысл пользоваться общим термином WM metadata.

В силу более поздних сроков разработки WMA-файлы имеют несколько более хитрое строение, нежели MP3. Здесь используется контейнерная структура, при которой файл с потоком аудиоданных «запаковывается» в оболочку-контейнер. Для Windows Media контейнером должен был служить ASF-файл. Но широкого распространения расширение ASF так и не получило, для аудиофайлов контейнеру обычно присваивают все то же расширение WMA. Метаданные включены в состав этого контейнера.

Структура собственно метаданных напоминает ID3 v2: тег располагается в начале файла, разделен на категории, каждая из которых имеет заголовок и может варьировать свой объем. Список категорий покороче, чем у ID3 v2:

24 — одна звезда, 25

49 — две звезды, 50

74 — три звезды, 75

Сравнивая категории WM metadata с категориями ID3 v2, можно сразу понять, какой из тегов появился «снизу», а какой – «сверху». В WM metadata меньше информации, описывающей потребительские качества композиции, но есть вещи наподобие возрастного рейтинга, информации о провайдере и т.п. Т.к. WM metadata используется и для видеофайлов, этот тег создавался так, чтобы использоваться и для аудио, и для видео. Кое-что из категорий только для видео, наподобие «Продюсер», «Идентификатор DVD», мы приводить не стали (хотя теоретически эти категории могут использоваться для аудио).

В WM metadata используется исключительно Unicode-кодировка, позволяющая нейтрализовать столь частую для тегов проблему кракозябр. Это можно причислить к преимуществам данного тега, хотя в силу меньшей распространенности WMA-файлов многие MP3-плееры, особенно старые модели, не способны их прочесть.

В целом сходства с ID3 v2 очень много. Оба тега имеют жесткую, раз и навсегда прописанную структуру. Списки категорий имеют много совпадений. Это неудивительно: зачем Microsoft было выдумывать велосипед, когда в свободном доступе существовала уже хорошо обкатанная система тегов?

iTunes tag

Хотя формат AAC имеет определенные технологические преимущества перед MP3, он едва ли получил бы сколь-либо серьезное распространение, не будь компании Apple. Она фактически «приватизировала» его для нужд своих iTunes Store, iTunes и iPod.

Переход экосистемы Apple на AAC состоялся в 2003 году, т.е. у компании была возможность учесть достижения и промахи и ID3, и WM metadata. В итоге использованная ей технология получила много общих черт с форматом Microsoft. Впрочем, едва ли здесь можно говорить о заимствовании: программисты Apple уже имели богатый опыт работы с мультимедиа-форматами.

Как и в случае с WMA, используется контейнер, для iTunes-медиафайлов это MP4 (или MPEG-4 Part 14). Он уходит корнями в старые разработки Apple, в QuickTime MOV. Различные типы MP4-медиа используют следующее семейство расширений:

  • M4A – аудио в формате AAC
  • M4B – аудио в формате AAC, аудиокниги и подкасты. Отличаются от M4A наличием закладок, синхронизированных изображений и ссылок
  • M4P – аудио в формате AAC, защищено FairPlay DRM
  • M4V – видео в формате H.264

Вместе с контейнерами под iTunes были разработаны и теги. Они не являются частью стандарта AAC, а были созданы отдельно, в этом у них имеется определенное сходство с ID3.

Apple не публикует спецификаций своих метаданных, и информация по ним довольно скудна. Известно, что они являются частью структуры MP4-контейнеров, основанной на иерархии так называемых «атомов». Грубо говоря, атомы в рамках MP4 представляют собой, как это следует из их названия, составные части-кирпичики файла. Каждый атом (на этот раз вопреки названию) может включать в себя группы других атомов. Теги iTunes также являются атомами, вместе они составляют группу метаданных, входящую в атомы калибром побольше.

В число категорий-атомов iTunes тегов входит:

Album Название альбома
Artist Исполнитель
Album Artist Автор альбома
Comment Комментарий
Year Год выпуска композиции
Title Название композиции
Genre (standard) Жанр (стандартный)
Genre (custom) Жанр (произвольный)
Track number Порядковый номер композиции в альбоме или сете
Disk number Порядковый номер диска в коллекции
Composer Композитор
Encoder Кем был сжат файл
BPM Темп композиции (бит в минуту)
Copyright Информация о правообладателе
Compilation Компиляция
Artwork Изображение, обычно Album Art
Rating/Advisory Рейтинг
Grouping Группировка
Podcast Подкаст
Category Категория
Keyword Ключевое слово
Podcast URL Ссылка на страницу с подкастом
Episode Global Unique ID Уникальный идентификатор эпизода
Description Описание
Lyrics Слова песни
Purchase Date Дата покупки
Gapless Playback Непрерывное проигрывание
iTunes_CDDB_IDs, iTunes_CDDB_1, iTunes_CDDB_TrackNumber Это идентификатор CD, с которого был скопирован файл
iTunNORM Информация о нормализации (уровне громкости) текущей композиции
iTunSMPB Здесь указывается, сколько секунд тишины следует добавлять перед проигрыванием файлов. В паре с Gapless Playback отвечает за Gapless-проигрывание

Спецификой iTunes-тегов является наличие семейства ID-категорий (не путать с ID3), содержащих информацию об их владельце. Их наличие неоднократно подвергалось критике части онлайн-общественности, в то же время другая часть утверждает, что если пользователь не будет нелегально распространять свои треки, то бояться ему нечего.

iTunes-теги помнят своего владельца

iTunes-теги используют Unicode-кодировку, следовательно, MP4-контейнеры тоже не подвержены кракозябрам.

Разнообразие категорий в iTunes-тегах меньше, чем в ID3 и WM metadata. Имеется набор служебных тегов, связанных с коммерческой составляющей iTunes, аналогично WMA.

В отличие от Microsoft, слегка забросившей в последнее время свое Windows Media направление, Apple регулярно дополняет свои теги, отражая расширение возможностей своих плееров и ПО. Из последних добавок – тег Gapless, появившийся в конце 2006 года. Если Apple все же откроет бизнес по продаже рингтонов для iPhone, следует ожидать новых модификаций iTunes tag.

Xiph Comments

Популярные среди «продвинутой» публики форматы OGG и FLAC имеют свою систему тегов. Называется она по наименованию разработчика, некоммерческой организации Xiph.org.

Отличительная особенность этой системы – отсутствие фиксированной структуры. Если в ID3, WM, iTunes все доступные категории раз и навсегда прописаны «сверху», то здесь пользователь может создавать любые свои категории, такого типа, какого захочет, с названиями по своему вкусу. В этом выразился «народный» open-source-характер Xiph-форматов.

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

TITLE Название композиции
VERSION Версия композиции (если она является ремиксом или чем-то в этом роде)
ALBUM Название альбома, в который входит композиция
TRACKNUMBER Порядковый номер композиции в рамках альбома, сборника или сета
ARTIST Автор композиции (может совпадать с композитором)
PERFORMER Исполнитель композиции (может совпадать с автором)
COPYRIGHT Информация о правообладателе
LICENSE Подробности, касающиеся лицензирования композиции
ORGANIZATION Организация, ответственная за выпуск композиции (обычно рекорд-лейбл)
DESCRIPTION Описание композиции
GENRE Жанр
DATE Дата выхода композиции
LOCATION Место, где была записана композиция
CONTACT Контактная информация компании или лица, ответственного за создание или распространение композиции
ISRC Код ISRC (международный стандартный код звукозаписи)

Список короткий и нарочито законопослушный, т.к. Xiph заинтересованы в том, чтобы их форматы использовали и «серьезные» организаторы. Конечно, простые пользователи при желании могут его игнорировать, но большинство плееров, поддерживающих OGG и FLAC, ориентируются именно на эту структуру.

Как и другие форматы тегов нового поколения, в Xiph comments используется Unicode-кодировка для текста.

APE tag

Проект Monkey Audio и формат APE имеет много общего с Xiph – тоже «народный», ориентированный на «продвинутое» сообщество, симпатизирующее идеям open-source.

Так же и теги, используемые в этом формате, схожи по архитектуре с Xiph comments. Тут мы снова видим гибкую структуру, без фиксированных категорий, открытую для модификации пользователем. Любопытной особенностью APE-тегов является возможность нахождения в одной категории нескольких значений (например, нескольких исполнителей и т.п.). В настоящее время в основном используется вторая версия APE tag.

Как и в Xiph comments, Monkey Audio предлагает список категорий по умолчанию:

Title Название композиции
Subtitle Дополнение к названию композиции
Artist Исполнитель
Album Название альбома, в который входит композиция
Debut album Дебютный альбом
Publisher Компания, ответственная за выпуск композиции (обычно рекорд-лейбл)
Conductor Дирижер
Track Порядковый номер композиции в альбоме, сборнике или сете
Composer Композитор
Comment Комментарий
Copyright Информация о правообладателе
Publicationright Информация об обладателе прав на публикацию
File Ссылка на страницу, содержащую файл
EAN/UPC Бар-код
ISBN Код ISBN (международный стандартный номер книги)
Catalog Номер каталога
LC Код лейбла
Year Дата выпуска композиции
Record Date Дата записи композиции
Record Location Место записи композиции
Genre Жанр
Media Источник композиции
Index Индекс композиции для быстрого доступа
Related Дополнительная информация
ISRC Код ISRC (международный стандартный код звукозаписи)
Abstract Резюме
Language Язык слов композиции
Bibliography Библиография или дискография автора/исполнителя
Introplay Временные координаты наиболее характерного фрагмента композиции для быстрого ознакомления

Список гораздо обширнее. Обращает на себя внимание ряд оригинальных категорий, таких, как библиография/дискография, и адаптированность тегов под аудиокниги.

Несложно догадаться, что APE comments тоже используют Unicode-кодировку и тем самым защищены от кракозябр.

OMA tag

Формат ATRAC в своей идеологии – абсолютная противоположность Xiph и Monkey Audio. Полная проприетарность в противовес open-source. Изначальная расположенность к DRM против полного отсутствия таковой. Эти форматы стоят на двух полюсах, неудивительно, что ни один из них не является самым популярным. Закрытость ATRAC отпугивает потребителя, открытость Xiph и Monkey Audio – производителя.

Хотя сам по себе кодек ATRAC относится с самым древним алгоритмам сжатия аудио с потерями, современной функциональностью, в т.ч. метаданными, он «оброс» только на рубеже 1999-2000 гг. Sony применило уже известную нам контейнерную технологию. Аудиопоток ATRAC заключается в проприетарный OMA-контейнер:

OMA – Open Magic Audio – обычный
OMG – Open Magic Gate – защищен OpenMG DRM.

Контейнер OMA и содержит теги. Описывать их нет никакого смысла, это хорошо нам уже знакомые ID3v2 теги. Да, именно так, Sony просто-напросто встроила этот открытый стандарт метаданных в свой закрытый формат. Некоторые отличия все же есть – категории, в ID3v2 предназначенные для хранения текстовой информации, используются в нем для данных, относящихся к DRM OpenMG. Так, открытый, народный, созданный «низами» формат метаданных был поставлен на службу закрытой технологии, предназначенной исключительно для того, чтобы ограничить свободу этого самого народа в отношении своего контента.

Помимо ATRAC в OMA-контейнер могут быть заключены также MP3-, WMA- или AAC-аудиопотоки. Собственно, именно это происходит при копировании аудио в подобных форматах на плееры Sony Network Walkman с помощью ПО SonicStage. Теги в них, соответственно, меняются на OMA (читай – ID3v2) теги, причем не всегда это происходит гладко, иногда метаданные теряются, искажаются. Эта особенность, как и многое другое в инфраструктуре SonicStage, вызывает серьезные претензии у пользователей.

Стоит отметить, что в реальной жизни не редкость использование тегов одного типа с файлами другого. Большинство программных проигрывателей натаскано на поиск идентификаторов тегов в файлах и без труда прочтут «чужеродные» метаданные, к примеру, APE tag в MP3-файле или ID3 v2 в M4A. Технически подкованные пользователи часто создают подобных «мутантов», комбинируя любимый тип тега с любимым форматом сжатия. MP3-плееры, однако, будут введены в замешательство таким поворотом событий и в большинстве случаев «неправильный» тег не прочтут.

What are ID3 Tags in MP3 Files?

MP3 ID3 tagMP3 files usually contain track data embedded within the file in addition to the audio data. This additional data is contained in ID3 tags and typically include the track’s title, artist and album details. However, these tags are much more versatile and can also contain a lot of extra information about the file in question.

A plain MP3 file just contains audio data with no further information about the artist or type of audio contained within it. To be able to include such additional data in an MP3, tag data is usually added to either the beginning or end of the audio file in an ID3 format.

While the original ID3 specification was quite limited with regards to the information that it could store about a file, later versions allow for great flexibility in the type and amount of data that can be stored.

Metadata

ID3 tag data contained within MP3 files is sometimes referred to as metadata. While this sounds a bit scary and complex, it’s really not. Metadata is just data describing other data. In this case, the ID3 tag data within an MP3 is the metadata, and it describes the audio data of the MP3, e.g. the track title, artist name etc..

A Brief History

When the MP3 audio file format was formally defined in 1991, the specification didn’t cater for the storage of any additional information (metadata) about the audio data within the file itself.

It wasn’t until 1996, when the initial specification for ID3v1 was proposed, that metadata could be added to an MP3 file in a defined format. The ID3v1 specification defined the addition of metadata to the end of an MP3 file, and by doing so enabled older MP3 players to still play the files without too many problems.

However, as is often the case, the initial ID3 specification suffered limitations, not least of which were restricted field lengths (only 30 characters) and limited support for international languages.

In 1998 ID3v2 was released, addressing these and other issues with the original specification. However, the ID3v2 specification now defined the addition of metadata to the beginning of an MP3 file rather than the end, as previously, to facilitate increasingly popular streaming media.

Which Version of ID3 Tags?

Whilst ID3v1 tags are technically the safest option of ID3 Tag to use for compatibility with older equipment, they are also more limited in their capabilities. As ID3v2 tags have been around for almost 10 years now, there are probably very few MP3 players or systems that aren’t capable of supporting them, and as such, should be the version to adopt.

Tag Data

The latest version of the ID3v2 specification defines over 80 data fields, although invariably only a subset of these are ever used. The most common metadata fields added to MP3 files are:

  • Title – The track title
  • Artist – The artist that recorded the track
  • Album – Which album the track belongs to (if applicable
  • Track – The track number from the album (if applicable)
  • Year – The year that the track was published
  • Genre – The type of track, e.g. speech, rock, pop
  • Comment – Additional notes about the track
  • Copyright – Copyright notice by the copyright holder
  • Album Art – Thumbnail of the album art or artist

In addition to these common fields, other data can be included such as: web addresses, composer, conductor, orchestra…

Usage

Tag data embedded within MP3 files is used by your playback system (MP3 player or your computer’s media player) to display useful information about the track being played.

While it’s nice to see information about the currently playing track on your MP3 player, the tag data is much more beneficial when it comes to searching for tracks, enabling you to search by artist, genre, year etc..

Editing Tag Data

While a lot of track data may already be included in your downloaded MP3 files, or may get added automatically by your ripping software when you rip a track from a CD, this data can be easily edited or added to if you wish.

By using a tag editor, you can add new track data to MP3s, or edit existing tags within your MP3 files. Some CD ripping software may include limited tag editing options, although dedicated tag editors tend to offer much more sophisticated editing capabilities.

If you’d like to try editing the ID3 tags of your MP3 files, some popular examples of ID3 tag editing software are:

Share this Page!
  • Tweet
  • RSSRSS Feed

Внутри MP3. А как оно всё устроено?

Однажды мне понадобилось решить простенькую (как мне тогда казалось) задачу – в PHP-скрипте узнать длительность mp3-файла. Я слышал о ID3 тегах и сразу подумал, что информация о длительности хранится либо в тегах, либо в заголовках mp3-файла. Поверхностные поиски в интернете показали что за пару-тройку минут решить эту задачу не получится. Поскольку от природы я довольно любопытен а время не поджимало — решил не использовать сторонние инструменты а разобраться в одном из самых популярных форматов самостоятельно.

Если Вам интересно, что там внутри – добро пожаловать под кат (трафик).

В данной статье мы не будем подробно останавливаться на извлечении ID3v2 тегов – это можно вынести в отдельную статью, так как там есть различные нюансы. А так же на фрагментах заголовков, которые практически не используются в настоящее время (например, часть Emphasis заголовка mp3-фрейма). Так же мы не рассматриваем структуру самих аудиоданных — тех самых, которые слышим из колонок.

ID3 теги

Существует две абсолютно разных версии ID3-данных: ID3v1 и ID3v2.

ID3v1 – имеет фиксированный размер в 128 байт, которые дописываются в конец mp3-файла. Там можно хранить: название трека, исполнитель, альбом, год, комментарий, номер трека (для версии 1.1) и жанр.

Довольно быстро всем стало понятно, что 128 байт – очень уж небольшое место для хранения таких данных. И поэтому, со временем, появилась и успешно используется вторая версия данных – ID3v2.
В отличии от первой версии, теги v2 имеют переменную длину и размещаются в начале файла, что позволяет поддерживать потоковое воспроизведение. (Формат ID3v2.4 позволяет так же хранить данные и в конце файла).
Данные ID3v2 состоят из заголовка и последующих фреймов ID3v2. Например, в версии ID3v2.3 существует более 70 типов фреймов.

  • маркер всегда равен ‘ID3’
  • В данный момент имеются три версии ID3v2.2, ID3v2.3 и ID3v2.4
    Версия v2.2 считается устаревшей.
    v2.3 – самая популярная версия.
    v2.4 – набирает популярность. Одно из отличий от v2.3 в том, что позволяет использовать кодировку UTF-8 (а не только UTF-16)
  • Флаги. В настоящее время используются только три (5,6,7) бита:
    bin: %abc00000
    a ‘unsynchronisation’ – используется только с MPEG-2 и MPEG-2.5 форматами.
    b ‘Extended header’ – указывает на наличие расширенного заголовка
    с ‘Experimental indicator’ – эксперементальный индикатор
  • Длина. Особенность указания длины данных ID3v2 в том, что в каждом байте 7-й бит не используется и всегда установлен в 0.

В данном случае вместе с заголовком ID3v2 (10 байт) – данные ID3v2 занимают 1024 байта.

После ID3v2-заголовка идут собственно теги. Подробный разбор чтения тегов ID3v2, как сказано выше, я решил не включать в эту статью.

Теперь у нас есть информация о наличии и длине тегов ID3 и мы можем приступать в разбору mp3-фрейма и понять-таки – где же хранится длительность. А заодно понять и всё остальное.

MP3-фрейм

Весь mp3-файл состоит из фреймов, которые можно извлекать только последовательно. Фрейм содержит в себе заголовок и аудио-данные. Поскольку мы не ставим себе целью написать прошивку для магнитофона – нас интересует именно заголовок фрейма.

О нем подробнее (куча таблиц и сухой информации)

Размер заголовка – 4 байта.

  • [0-10] Маркер – 11 бит, заполненные единицами (Frame sync)
  • [11-12] Индекс версии MPEG (Audio version ID)
  • [13-14] Индекс версии Layer (Layer index)

    Кстати, MP3 – это MPEG-1 Layer III
  • [15] Бит защиты (Protection bit)
    1 – нет защиты
    0 – заголовок защищен 16-бит. CRC (следует за заголовком)
  • [16-19] Индекс битрейта (Bitrate index)

    В таблице хранятся значения битрейта в килобит/сек. Однако в данном формате подразумевается, что 1 килобит = 1000 бит, а не 1024. Таким образом 96 Кбит/сек = 96000 бит/сек.
  • [20-21] Индекс частоты дискретизации (Sampling rate index)
  • [22] Бит смещения (Padding bit)
    Если он установлен, то данные смещаются на 1 байт. Это важно для расчета размера фрейма.
  • [23] Бит private (только для информации)
  • [24-25] Режим канала (Channel mode)
  • [26-27] Расширение режима канала. (Mode extension) Используется только с Joint stereo
  • [28] Копирайт (Copyright bit) – только для информации
  • [29] Оригинал (Original bit) – только для информации.
  • [30-31] Акцент (Emphasis) – в данный момент практически не используется.

Режимы сжатия данных или какой бывает битрейт

Существует 3 режима сжатия данных:

CBR (constant bitrate) – постоянный битрейт. Не меняется на всем протяжении трека.

VBR (variable bitrate) – переменный битрейт. При этом сжатии битрейт постоянно меняется на протяжении трека.

ABR (average bitrate) – усредненный битрейт. Это понятие используется только при кодировании файла. На «выходе» получается файл с VBR.

Например, файл имеет размер 350670 байт. Есть ID3v1 теги (128 байт) и ID3v2 теги (1024 байта). Битрейт = 96. Следовательно размер аудиоданных равен 350670 – 128 – 1024 = 349518 байт.
Длительность = 349518 / 96000 * 8 = 29,1265 = 29 секунд

Необходимо пояснить – как определить режим сжатия. Всё просто. Если файл сжат с VBR – то добавляется VBR-заголовок. По его наличию мы и можем понять, что используется переменный битрейт.
Есть два вида заголовков: Xing и VBRI.
Xing размещается со смещением от начала первого mp3-фрейма в позиции, согласно таблице:

Например: у нас ID3v2 тег занимает 1024 байта. Если наш mp3-файл имеет режим канала «Стерео» — то заголовок VBR Xing будет начинаться со смещения 1024 + 32 = 1056 байт.

Заголовок VBRI всегда размещается со смещением +32 байта от начала первого mp3-фрейма.

Первые четыре байта в обоих заголовках содержат маркер ‘Xing’ или ‘Info’ для Xing. И ‘VBRI’ для VBRI.

Эти VBR заголовки имеют переменную длину и содержат различную информацию о кодировании файла. Подробнее о структуре заголовков VBR (и не только) можно почитать, например, тут.

Я же расскажу только о том, что нас интересует в данный момент. А именно – количество фреймов (Number of Frames). Это число длиной 4 байта.
В заголовке Xing оно содержится по смещению +8 байт от начала заголовка. В VBRI +14 байт от начала заголовка.

Используя таблицу Сэмплов на фрейм (Sampler Per Frame) мы можем получить длительность mp3-файла, закодированного с переменным битрейтом.

Например: из заголовка VBRI получили количество фреймов 1118, сэмплов на фрейм = 1152. Частота дискретизации = 44100.
Длительность = 1118 * 1152 / 44100 = 29.204 = 29 секунд.

На этом на сегодня всё. Если был кому-то полезен — спасибо.

Для тех, кто захочет немедленно поковырять внутренности mp3 — Тут лежат скрипт на php, которые я писал для себя одновременно с данной статьей и четыре небольших mp3-файла для теста.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *