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'??каво, чи існує хоч один програвач, що враховує цей кадр?
Кий з них?