Bog BOS: dw: Метаінформація (теги) в звукових і відеофайли

Bog BOS: dw: Метаінформація (теги) в звукових і відеофайли

Остання зміна файлу: 2008.05.25
Скопійовано з www.bog.pp.ru: 2019.06.14

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 записується номер доріжки.

Версія ID3v2.2 була розроблена в 1998 (M. Nilsson). Не має нічого спільного з ID3v1. Теги розташовуються на початку файлу. Кожен тег займає окремий кадр (frame) розміром до 16Мб. Для "безкарною" вставки незвукових даних в MP3 файл використовується той факт, що будь-який MP3 декодер починає декодування після отримання сигналу синхронізації (0b11111111 111xxxxx), так що досить помістити тег до першого такого сигналу і не допускати його випадкового появи всередині тега (0b11111111 111xxxxx замінюється на 0b11111111 00000000 111xxxxx, а 0xff00 на 0xff0000). Порядок біт - MSB, порядок байт - big endian, символ-заповнювач - 0x0. На початку тега йде заголовок (10 байт): "ID3", підверсія ID3v2 (0x0200), прапори (1 байт: використання алгоритму десинхронизации, використання стиснення, решта - резерв), довжина тега без заголовка (4 байта, в кожному байті використовуються тільки молодші 7 біт), за яким йде послідовність кадрів. Кожен кадр має заголовок: 3-х символьне ім'я, 3-байтная довжина кадру без заголовка. Імена, що починаються з 'X', 'Y' або 'Z', вважаються експериментальними (читай: можна придумувати свої кадри). За замовчуванням, використовується кодування ISO-8859-1 (термінатор рядки - 0x00). Деякі (не всі, а тільки імена яких починаються з 'T'?) Типи кадрів можуть використовувати UCS-2 (Unicode), термінатор рядки - 0x0000, про необхідні для визначення порядку байт символи BOM розробники забули, такі кадри мають однобайтовий прапор на початку кадру (0 - ISO-8859-1, 1 - UCS-2). Текстові кадри можуть мати 3-х символьне поле, яке описує мову (ISO-639-2). Використовувані в кадрах URL можуть бути відносними. Основні кадри (всього їх понад 80, в дужках дано імена для ID3v2.3 і ID3v2.4):

  • 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 (котушковий магнітофон)
  • TFT (TFLT) - тип аудіокодека: MPG / 1, MPG / 2, MPG / 3, MPG / 2.5, MPG / AAC, PCM, VQF, MIME
  • TBM (TBPM) - BPM (beats per minute)
  • TCR (TCOP) - запис про авторське право ( "1999 Іванов")
  • TPB (TPUB) - видавець
  • TEN (TENC) - кодировщик файлу
  • TSS (TSSE) - назва програми або обладнання, що використовується при кодуванні, і параметри
  • TOF (TOFN) - оригінальне ім'я файлу
  • TLE (TLEN) - довжина твори в мілісекундах
  • TDY (TDLY) - пауза між творами в мілісекундах
  • TKE (TKEY) - тональність твору
  • TXX (TXXX) - рядок користувача
  • IPL (IPLS) - інші учасники
  • MCI (MCDI) - вміст CD-ROM TOC для пошуку в cddb і т.п.
  • ETC (ETCO) - таблиця подій і їх часи для синхронізації з слайд-шоу і т.п.
  • MLL (MLLT) - індекс для швидкого позиціонування в файлі
  • ULT (USLT) - текст пісні (містить поля кодування, мови і типу тексту; дозволяються переклади рядків, може бути тільки один текст для кожної мови і типу)
  • SLT (SYLT) - синхронізований текст пісні (для караоке)
  • COM (COMM) - коментар (містить поля кодування і мови)
  • RVA (RVAD) - дозволяє задати бажану зміну гучності лівого і правого каналу, а також наявні у файлі пікові значення
  • EQU (EQUA) - крива еквалайзера
  • REV (RVRB) - завдання рівня луни та інші спецефекти (ц��каво, чи існує хоч один програвач, що враховує цей кадр?)
  • PIC (APIC) - вбудована картинка (задається кодування тексту, опис картинки, тип картинки (іконка, передня обкладинка, задня обкладинка і т.д.), формат картинки ( 'PNG', 'JPG', '->' для вказівки URL окремого файлу), електронних даних)
  • GEO (GEOB) - довільний вбудований об'єкт (задається кодування тексту, опис, MIME-тип, ім'я файлу, електронних даних)
  • CNT (PCNT) - скільки разів грався цей файл
  • POP (POPM) - рейтинг популярності (містить email, рейтинг і лічильник)

Версія ID3v2.3 була розроблена в 1999 (M. Nilsson). Підверсія ID3v2 змінилася на 0x0300. Замість прапора стиснення з'явилися прапори додаткового заголовка (містить CRC-32) і експериментального статусу. Імена кадрів стали 4-х символьними, довжина кадру також задається тепер 4-ма байтами. У кодуванні UCS-2 згадали про символ BOM для визначення порядку байт (а про різницю UCS-2 і UTF-16 поки немає). Заголовок кадру отримав свої прапори (2 байта): що повинна робити програма редагування тега з незнайомим типом кадру (видаляти або копіювати), що повинна робити програма редагування файлу з незнайомим типу кадру, тільки читання, кадр стиснутий zlib, кадр зашифрований, кадр належить групі . Кадр RVAD тепер має поля, що дозволяють управляти гучністю додаткових каналів. У кадрі APIC формат картинки задається за допомогою MIME типу і підтипу ( "image / png" або "->" для вказівки URL окремого файлу). Додані кадри:

  • USER - визначає права на використання файлу
  • OWNE - визначає продавця, ціну і дату покупки
  • PRIV - для приватного використання
  • "Експериментальний" тег XRVA (relative volume adjustment, в dB) додається утилітою normalize

Версія ID3v2.4 була розроблена у 2000 (M. Nilsson). Підверсія ID3v2 змінилася на 0x0400. Формат додаткового заголовка змінився: повністю перероблена структура, доданий прапор накладення кадрів (дозволяє мати кілька тегів у файлі або потоці), можливість накласти обмеження на кількість кадрів і розмір тега, кодування і довжину рядків, формат і дозвіл картинок. З'явився прапор наявності висновку тега і саме опциональное висновок (10 байт) для спрощення знаходження тега з кінця файлу. Нарешті, розібралися з кодуваннями, тепер рядки можуть бути в кодуваннях: ISO-8859-1, UTF-16 з BOM, UTF-16BE без BOM і UTF-8. Код мови - 3 символу відповідно до ISO-639-2 малими літерами, невідому мову - XXX. У заголовок кадру додані прапори десинхронизации і Data Length Indicator. Текстові кадри можуть містити кілька значень, поділюваних термінатором рядки (0x0 для ISO-8859-1, 0x0000 для UTF-16, 0x00 для UTF-8) замість '/' у версії ID3v2.3. Замість коду в дужках (TCON, TMED) тепер необхідно використовувати рядки, розділені терминаторами. Додані кадри (видалені TYER, TDAT, TIME, IPLS, RVAD, EQUA):

  • 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).

python-mutagen - модуль python для редагування тегів ID3v1.1, ID3v2.4, APEv2, FLAC, Ogg Vorbis, ASF, M4A, Monkey, Musepack, Ogg Speex, Ogg Theora, True Audio, WavPack і OptimFROG. Використовується в exaile і quodlibet. Включає утиліти:

  • mid3v2 - консольний редактор тегів ID3, ключі:
    • --list
    • --list-raw
    • --delete-v2
    • --delete-v1
    • --delete-frames = ім'я-кадру, ...
    • --convert (перетворити ID3v1 в ID3v2.4)
    • --імя-T-кадру = значення
    • --artist = значення
    • --album = значення
    • --song = значення
    • --genre = значення
    • --comment = опис: коментар: код-мови
    • --year = рік
    • --date = рік-місяць-день
  • mid3iconv - перетворення кодування в Unicode, ключі:
    • --encoding вихідна-кодування
    • --debug
    • --dry-run
    • --force-v1
    • --remove-v1
  • moggsplit - поділ потоків Ogg на окремі файли
  • mutagen-pony - рекурсивно сканує вказаний каталог, підраховує статистику і шукає помилки

Перекодування типового альбому кінця 90-х (коментарів не перекодуються!):

find -iname '* .mp3' -print0 | xargs -0 mid3iconv -eCP1251 --remove-v1

Для перекодування Віесте з коментарями використовував спочатку перетворення з нестандартною кодування в UTF-16BE з допомогою easytag, а потім mid3iconv (без ключа -e) для перетворення ID3v2.3 в ID3v2.4. Параметри easytag (~ / .easytag / easytagrc):

write_id3v1_tag = 0 write_id3v2_tag = 1 convert_old_id3v2_tag_version = 1 use_id3_iso_8859_1_character_set = 0 use_id3_iso_8859_1_then_unicode_character_set = 1 use_id3_unicode_character_set = 0 use_non_standard_id3_reading_character_set = 1 use_non_standard_id3_writing_character_set = 1 id3_file_reading_character_set = windows-1251 id3_file_writing_character_set = UTF-16BE

У 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, завантаження обкладинок, експорт / імпорт.

У FC6 встановив пакет quodlibet-0.24.

Bog BOS: dw: Метаінформація (теги) в звукових і відеофайли

Copyright © 1996-2018 Sergey E. Bogomolov; www.bog.pp.ru (КДБ знає все, навіть те що у Вас на диску;) Не всі, а тільки імена яких починаються з 'T'?
?каво, чи існує хоч один програвач, що враховує цей кадр?
Кий з них?