Bog BOS: dw: Метаинформация (теги) в звуковых и видеофайлах
ID3 - формат контейнера, позволяющий хранить в файлах формата MP3 (MPEG-1 Layer III) дополнительную информацию, такую как имя артиста, название композиции, название альбома, номер дорожки и др.
Версия ID3v1 была разработана в 1996 (Eric Kemp). Метка располагается в конце файла, занимает 128 байт и начинается со строки "TAG". Поля: title (30 байт), artist (30 байт), album (30 байт), year (4 байта), comment (30 байт), genre (1 байт, список жанров предопределён). Кодировка - ISO-8859-1/ISO-Latin 1 (в России обычно используется cp1251), символ-заполнитель - 0x0.
Версия ID3v1.1 была разработана в 1997 (Michael Mutschler): в последнем байте поля comment записывается номер дорожки.
- TT1 (TIT1) - Content group description
- TT2 (TIT2) - название произведения
- TT3 (TIT3) - уточнение названия
- TP1 (TPE1) - основной исполнитель (можно указать несколько, разделяя их символом '/')
- TP2 (TPE2) - уточнение исполнителя (название группы и т.д.)
- TP3 (TPE3) - дирижёр
- TP4 (TPE4) - обработчик, модификатор
- TCM (TCOM) - композитор (можно указать несколько, разделяя их символом '/')
- TXT (TEXT) - автор текст произведения (можно указать несколько, разделяя их символом '/')
- TLA (TLAN) - язык (языки)
- TCO (TCON) - жанр (ссылки на жанры из списка ID3v1 в виде '(номер)' или свой текст)
- TAL (TALB) - название альбома. фильма, шоу и т.д.
- TPA (TPOS) - номер части альбома (если используется несколько носителей) или "номер/из"
- TRK (TRCK) - номер произведения в альбоме или "номер/из"
- TRC (TSRC) - номер ISRC (International Standard Recording Code)
- TYE (TYER) - год (4 символа)
- TDA (TDAT) - дата записи в формате 'DDMM'
- TIM (TIME) - время записи в формате 'HHMM'
- TMT (TMED) - тип носителя, произвольный текст или код в скобках:
- DIG[/A] (прочие цифровые источники [аналоговая передача])
- ANA (прочие аналоговые источники)
- CD[/A|/DD|/AD/AA]
- LD[/A]
- TT[/33|/45|/78] (грампластинка)
- MD
- DAT
- DVD
- TV/SECAM
- VID/PAL/SVHS
- RAD/FM
- TEL (телефон)
- MC (кассетный магнитофон)
- REE (катушечный магнитофон)
- USER - определяет права на использование файла
- OWNE - определяет продавца, цену и дату покупки
- PRIV - для частного использования
- "экспериментальный" тег XRVA (relative volume adjustment, в dB) добавляется утилитой normalize
- TSST - подзаголовок набора записей
- TMCL - таблица соответствия между названиями инструментов (нечётные поля) и именами музыкантов (чётные поля через запятую)
- TIPL - таблица соответствия между функциями (нечётные поля) и именами исполнителей (чётные поля через запятую), заменяет кадр IPLS
- TMOD - настроение (Romantic и т.д.)
- TPRO - аналогично TCOP, но для отметки изготовителя (P)
- TOWN - имя покупателя лицензии
- TDEN - отметка времени кодирования (ГГГГ-ММ-ДДTЧЧ:ММ:СС или сокращённое)
- TDOR - отметка времени изготовления оригинала
- TDRC - отметка времени записи (заменяет TYER, TDAT и TIME)
- TDRL - отметка времени выпуска записи
- TDTG - отметка времени записи тега
- TSOA - строка, используемая для сортировки по альбомам вместо TALB
- TSOP - строка, используемая для сортировки по исполнителям вместо TPE2
- TSOT - строка, используемая для сортировки по названиям вместо TIT2
- RVA2 - позволяет задать желаемое изменение громкости для каждого канала (формат изменился совершенно по сравнению с RVAD)
- EQU2 - кривая эквалайзера (формат изменился совершенно по сравнению с EQUA)
- ASPI - ещё один индекс для позиционирования внутри файла
Наличие множества мелких, но неприятных и бессмысленных несоответсвий между версиями, совершенно дикий формат и непонимание автором стандарта понятий Unicode привело к тому, что во многих программах до сих пор нет поддержки ID3v2.4, выпущенной в 2000 году, а вместо этого разработчики запихивают UTF-8 в ID3v2.3 и даже в ID3v1. В сочетании с коллекциями с тегами ID3v1 в cp1251 (и даже тегами ID3v2.3 в cp1251 и указанием языка "eng"!) и новыми программами, в которых преднамеренно выключена обработка неверных кодировок, вызывает ужасное раздражение.
Для редактирования тегов можно использовать специальные программы или такие аудиопроигрыватели как Amarok (ID3v2.4), Quod Libet (ID3v2.4).
Метаинформация хранится в Xiph Comments (аналогично во flac и speex).
Версия 0.30: RG_RADIO, RG_PEAK, RG_AUDIOPHILE
Новая версия: REPLAYGAIN_TRACK_GAIN (относительное усиление в dB), REPLAYGAIN_TRACK_PEAK (абсолютное значение, 1.0 - максимум), REPLAYGAIN_ALBUM_GAIN, REPLAYGAIN_ALBUM_PEAK.
Шутка. WAV не содержит метаинформации.
id3lib - библиотека для работы с ID3v1/ID3v1.1 и ID3v2/ID3v2.3 (хотя в текте упоминается 2.4). В состав пакета входят утилиты id3info (выдать информацию о тегах), id3tag (редактировать теги: артист, альбом, название, комментарий, жанр, год, номер дорожки), id3convert. Последняя версия (3.8.3) выпущена 2003-03-02, т.е. проект заброшен. Используется в id3v2, easytag и grip (соответственно они тоже работают только с ID3v2.3).
В FC6 установил пакеты id3lib-3.8.3 и id3lib-devel-3.8.3.
id3v2 (0.1.11) - консольный редактор ID3v2. Позволяет смотреть, добавлять (артист, альбом, название, комментарий, жанр, год, номер дорожки), изменять, удалять теги ID3v2, а также преобразовывать ID3v1 в ID3v2. Не понимает ID3v2.4 и UTF-8 в ID3v1. Не развивается с 2004.
libid3tag - библиотека для работы с ID3v1 и ID3v2 (ID3v2.4 судя по madplay). Последняя версия (0.15.1) выпущена 2004/02/17, т.е. проект заброшен. Однако используется в большом количестве пакетов (mpd, audacity, madplay, imlib2, gstreamer-plugins-ugly).
taglib - библиотека для работы с ID3v1 и ID3v2 (включая 2.4 судя по audacious), Ogg Vorbis comment, ID3 и Vorbis comment во flac. Часть проекта KDE. Из документации - текст лицензии и выхлоп doxygen. Используется в amarok, audacious, tellico, libtunepimp.
В FC6 установил пакеты taglib-1.4 и taglib-devel-1.4.
EasyTAG - редактор (GTK2) тегов ID3, FLAC, Ogg Vorbis, MP4/AAC, MusePack, Monkey. Точнее говоря, огромный комбайн по визуализации и редактированию тегов различных типов. Файлы можно обрабатывать как поштучно, так и группами. Делает теги из имени файла и имена файлов из тегов. Умеет обращаться к CDDB для автоматического заполнения тегов. Теги ID3v2.3: название, исполнитель, альбом, часть альбома, год, номер дорожки, жанр, комментарий, композитор, первый исполнитель, авторское право, URL (который из них?), кодировщик, картинки. Автоматическая обработка пробелов, подчёркиваний, прописных и строчных букв. Умеет преобразовывать из одной версии ID3 в другую и обрабатывать нестандартные кодировки. К сожалению, использует id3lib и, соответственно, не понимает ID3v2.4, поэтому не совместима с современными проигрывателями (amarok, quodlibet).
В FC6 установил пакет easytag-1.99.13 (2.0-1, 2.0.1-1).
- mid3v2 - консольный редактор тегов ID3, ключи:
- --list
- --list-raw
- --delete-v2
- --delete-v1
- --delete-frames=имя-кадра.
- --convert (преобразовать ID3v1 в ID3v2.4)
- --имя-T-кадра=значение
- --artist=значение
- --album=значение
- --song=значение
- --genre=значение
- --comment=описание:комментарий:код-языка
- --year=год
- --date=год-месяц-день
- --encoding исходная-кодировка
- --debug
- --dry-run
- --force-v1
- --remove-v1
Перекодировка типового альбома конца 90-х (комментарии не перекодируются!):
Для перекодировки виесте с комментариями использовал сначала преобразование из нестандартной кодировки в UTF-16BE с помощью easytag, а затем mid3iconv (без ключа -e) для преобразования ID3v2.3 в ID3v2.4. Параметры easytag (
В FC6 установил пакет python-mutagen-1.10.1 (1.11-1).
Ex Falso - редактор (GTK2, python) тегов из пакета quodlibet. Используется python-mutagen, так что позволяет просматривать и редактировать теги MP3 (больше 30 типов кадров), Ogg Vorbis, FLAC, Musepack, WavPack, MOD/XM/IT. Есть возможность переименования файлов, поиска в CDDB. Дополнительные модули: поиск в google и wiki, запись на CD, загрузка обложек, экспорт/импорт.