Что такое ID3-тэги?
Изначально аудио файлы были пустыми и не содержали никакой информации кроме имени файла. Ситуация изменилась в 1996 году, когда Эрик Кемп придумал ID3v1-тэги. Главная идея состояла в наполнении файлов дополнительной информацией.
Изобретение обрело быструю популярность и стало стандартом для наиболее распространенного аудио формата — MP3.
ID3v1-тэги позволяют хранить информацию об исполнителе, альбоме, годе выпуска, номер трэка и комментарии. Больше не нужно было придумывать изощрённые названия для своих файлов (да и не все операционные системы поддерживали длинное имя файла в то время).
ID3v1-тэги вмещали 30 символов. Этого было в некоторых случаях недостаточно, поэтому появилась новая версия ID3v2, в которой используется совершенно другой подход.
Во-первых, они сохраняются не в конце (как ID3v1), а в начале файла, что важно для передачи мультимедийных потоков, проигрывания файлов. Во второй версии нет ограничений по количеству информационных полей, длинные названия, добавлены некоторые функции, например, возможность загрузки текста песни и обложки диска. Большинство современных проигрывателей обладают полезными функциями на основе ID3-тэгов.
Внутри 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-файла для теста.
Разновидности медиатегов
Предыдущий материал мы посвятили изучению метаданных как незаметного, но важного инструмента современной медиаархитектуры. Мы поговорили о базовых принципах этих метаданных или тегов: структурированность, поддержка разных типов данных.
Какие же разновидности верных этой парадигме тегов распространены в мире? Сегодня три типа компрессированных цифровых аудиофайлов можно причислить к лидерам: это, конечно же, 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-плееры, однако, будут введены в замешательство таким поворотом событий и в большинстве случаев «неправильный» тег не прочтут.
Что представляет собой информация ID3-TAG?
ID3-TAG — это набор данных в звуковом MP3-файле, хранящийся в определенном формате. Обычно в этих данных содержатся имя исполнителя, название композиции, год и жанр текущего аудиофайла.
Данное устройство позволяет отображать заголовок композиции и имя исполнителя, хранящиеся в информации ID3-TAG в MP3-файлах.
Для просмотра этого видео в Youtube примите все файлы cookie.
Зайдите в настройки файлов cookie ниже и включите сохранение файлов cookie для Youtube в разделе «Функциональные».