что такое теги в треках
Что такое MP3-теги и какое у них назначение.
Всякий файл обычно обзывается каким-нибудь словом, дабы из этого слова тотчас становилось ясно для чего он такой нужен и чего с ним делать. Но для некоторых файлов существуют не только название и само содержимое файла, но есть еще и так называемые метаданные. Это еще не содержимое, но уже и не название. Так вот ныне самый распостраненный аудиоформат mp3 имеет в себе систему тегов. В тегах описывается что это за музыка — как называется композиция, кем сыграна, в каком году, в каком жанре и в составе какого альбома значится и под каким номером. Говоря лаконичным языком самих mp3-тегов:
Кроме вышеперечисленных существуют и другие теги, кои однако используются очень реже и содержат не столь важные для классификации композиции данные, к примеру — композитор, автор слов, комментарий, номер диска, и прочая прочая. Вряд ли они кому то нужны, если конечно вы не фанатичный коллекционер музыки число песен у которого исчисляется в миллиардах. Первых шести перечисленных тегов достаточно для какой угодно классификации.
Язык системы тегов ID3
Музыкальные проигрыватели, как программные, так и аппаратные обычно пытаются считать данные о музыкальном треке именно из тегов файла чтобы представить вам проигрываемую композицию. А также если вам вздумается разыскать нужную песню — искаться она проигрывателем будет тоже по ним. Официальным языком система тегов именуется ID3 (IDentify an mp3), что намекает. Конкретней — ныне используется ID3v2 — то бишь стандарт метаданных второй версии.
Откуда берутся «крякозябры»?
Итак, почему же в некоторых песнях любимый проигрыватель вместо названий и/или исполнителей выдает «абракадабру»(«кракозябры», «китайскую грамоту», и.т.д)?
Ответ прост. По той же самой причине, по коей мы имеем к себе в монитор «кракозябры» в любых других местах — битая кодировка.
Случается такое, когда русский текст в одной кодировке мы пытаемся прочитать в другой. Соответственно русские теги mp3 в музыкальных файлах и показываются криво. Потому что большинство музыки в сети, откуда мы ее качаем, имеет свои кириллические теги в кодировке, отличной от признанной стандартом UTF-8, то есть в кодировке windows — cp1251, koi8-r, или еще какой чертовщине.
К примеру, с такой проблемой пользователь лицом прям сталкивается когда хочет послушать добытую в интернетах музыку в linux-системах, Ubuntu скажем. Я и сам с этим сталкиваюсь постоянно, являясь юзером оной — каждый скачанный альбом с русскими тегами необходимо перекодировать, дабы любимый мною проигрыватель Rhythmbox мог красиво показывать что он за музыку играет и, что более важно, мог мне находить в фонотеке музыку, которую я пожелаю.
Более того, если 98% музыки русскоязычных исполнителей идет с кривыми тегами, то примерно половина из них скачивается еще и с названиями файлов в кривой кодировке. Что тоже причиняет некоторые неудобства. Но излечимо, причем легко.
Еще один момент — бывает что mp3-файлы совсем не имеют тегов. А хотелось бы. Все обозначенные в данной статье проблемы запросто решаемы. Существуют редакторы и утилиты для изменения и перекодировки тегов. И о простых и удобных способах проведения операций по приведению русских тегов mp3-файлов в вашей фонотеке в порядок, о редакторах, утилитах и прочих программах для работы с тегами, будет поведано в другой статье.
Admin
IT-cпециалист с высшим техническим образованием и 8-летним опытом системного администрирования. Подробней об авторе и контакты. Даю бесплатные консультации по информационным технологиям, работе компьютеров и других устройств, программ, сервисов и сайтов в интернете. Если вы не нашли нужную информацию, то задайте свой вопрос!
Mp3tag: наведение порядка в аудиотеке
В данном обзоре будет рассмотрено одно из наиболее известных решений для редактирования тегов — Mp3tag. Внимание будет уделено как основным, так и дополнительным возможностям программы, связанным с ручным и пакетным редактированием тегов.
Аудиотека и теги
Сравнительно недавно домашняя аудиотека хранилась преимущественно на твердых носителях — кассета, CD, винил. Такая устоявшаяся традиция существует до сих пор, однако все больше пользователей предпочитают слушать музыку онлайн, даже не загружая ее на устройство. В то же время, многие меломаны выбирают золотую середину: наиболее удобный и недорогой способ хранения — на жестком диске компьютера, в виде файлов различных форматов аудио. У данного подхода есть свои нюансы. В частности, управлять обширной коллекцией, по мере ее разрастания, становится все сложнее. Разнообразие форматов, источников, исполнителей, различное качество звучания — слишком много причин, чтобы задуматься о наведении порядка в домашней аудиотеке.
На самом деле, решение проблемы общеизвестно и лежит на поверхности: для упорядочивания коллекции можно прибегнуть к тегам. Чем более детально данная информация описывает композицию, тем больше шансов обнаружить нужный трек среди музыкальных архивов.
Очевидно, что теги берут на себя информационную роль, и сегодня сложно найти программный или аппаратный медиаплеер без поддержки метаданных или музыкальный сервис без соответствующих возможностей при импорте музыки с компьютера в Интернет.
Знакомство с Mp3tag
Домашняя страница: http://www.mp3tag.de/en/
Разработчик: Florian Heidenreich
Поддержка ОС: Microsoft Windows XP+
Лицензия: Freeware
Итак, возникает необходимость в удобном инструментарии по менеджменту тегов. Mp3tag можно назвать в полной мере классическим менеджером для платформы Windows с оптимальной функциональностью. Программа бесплатна, развивается за счет пожертвований и, судя по регулярным обновлениям, поддерживается в актуальном состоянии.
Перечислим главные возможности программы, которые более подробно будут раскрыты в обзоре. Прежде всего, Mp3tag обращает на себя внимание широкой поддержкой форматов аудио. В списке присутствуют MP3, MP4, AAC, FLAC, WMA и другие, полный перечень приведен на сайте разработчика. Кроме того, Mp3tag распознает популярные форматы метаданных, в том числе теги D3v1.1, ID3v2.3, ID3v2.4, MP4, WMA, APEv2 Tags и комментарии Vorbis.
Помимо этого, далеко не полного перечня функций, упомянутых на сайте разработчика, следует включить в список более общие возможности Mp3tag — преобразования и действия.
Интерфейс программы
Mp3tag — альтернатива встроенным теговым редакторам проигрывателей (Winamp, AIMP, FooBar и др.), плагинам, онлайн-сервисам. Главное отличие интерфейса состоит в автономности приложения и скорости работы. В плюсы можно также добавить полную совместимость с юникодом (интерфейс, теги) и качественную русскую локализацию. Переведены не только меню и диалоги, но также подсказки, отображаемые в строке состояния. Это упрощает знакомство нового пользователя с программой.
Интерфейс MP3tag легок для изучения, состоит из двух главных областей — боковая панель тегов и правая панель, отображающая список файлов для редактирования. В верхней части окна расположена панель инструментов и полоса меню, снизу находится статусная строка. В данной области отображается информация о загруженных файлах — занимаемое пространство, продолжительность звучания — как суммарно, так и для отдельных композиций.
Пожалуй, наиболее примечательная особенность интерфейса Mp3tag — гибкая настройка колонок. Произвести ее можно через контекстное меню, пункт «Настроить колонки…», либо «Вид > Настроить колонки…» в главном меню. Помимо добавления и удаления имеющихся колонок, можно создавать пользовательские поля в правой части диалога «Колонки». Легко заметить, что они базируются на данных, взятых из тегов, системной информации аудиофайла и других доступных переменных. Есть поддержка функций, о чем будет подробно изложено далее.
Если необходимо завести несколько профилей, легко сохранить конфигурацию для последующей загрузки.
Колонки правой панели поддаются сортировке и фильтрации. Сортировка достаточно удобна при упорядочивании небольших объемов данных или при быстрой группировке аудиоданных. Фильтрация, напротив, используется в более специфических ситуациях, подтверждением чему операторы и синтаксис, которые используются при указании критериев поиска. По структуре такой запрос (filter expression) состоит из имени поля, ключевого слова фильтра и текста.
artist IS primal scream AND album IS beautiful future
С форматом синтаксиса можно ознакомиться в разделе Filter документации. В принципе, можно использовать фильтр «как есть», вводя текст, который нужно найти в тегах файлов. В данном случае, очевидно, возможности фильтрации реализуются фактически на треть: в запросе задействуется только имя поля.
Приступая к работе: редактирование тегов
Смена папки удобна для быстрого перехода к другому источнику. Добавление папки к существующему списку позволяет дополнить текущий список, а также синхронизировать данные. В настройках Mp3tag, раздел «Папки», указывается начальная директория для автоматической загрузки списка редактируемых композиций. Здесь же стоит обратить внимание на другие секции настроек, отвечающие за метаданные. Так, в одноименном разделе «Теги» пользователь может ограничить входящие типы файлов, а в других подразделах тонко настроить чтение и сохранение метаданных. Как известно, каждый аудиоформат имеет свои особенности, равно как устройства, на которых планируется воспроизведение, по-разному относятся к версиям тегов, комментариев и кодировкам.
Информация о тегах доступна в левой панели главного окна. Из нее открывается доступ к стандартным возможностям редактирования тегов выбранного трека: название, исполнитель, альбом, год, жанр и другие поля. Есть опция для добавления обложки в форматах jpg или png. Что касается дополнительных тегов, которые, разумеется, не помещены в общий список, их можно редактировать посредством меню «Вид > Дополнительные теги». Также, Mp3tag позволяет вынести пользовательские поля на панель тегов. Для этого нужно зайти в «Настройки > Панель тегов» и добавить необходимые элементы в список.
При множественном выделении строк с композициями, в панели тегов для полей отображаются значения по умолчанию. С помощью вспомогательных пометок «Сохранить» и «Очистить» в полях, можно оставить или удалить текущую информацию.
Сохранение тегов возможно с помощью команды «Файл > Сохранить тег», отмена изменений — «Правка > Отменить».
Пакетное редактирование тегов и файлов
MP3tag избавляет пользователя от всевозможных рутинных задач, которые нельзя быстро и «красиво» выполнить вручную — поэтому необходима автоматизация. Например, это относится к случаям, когда требуется «пройтись» по всей аудиотеке, импортировать обложки, переименовать файлы в соответствии с тегами, перевести названия в транслит, заменить символы, пронумеровать треки.
Перечисляя ключевые особенности Mp3tag, следует упомянуть главную концепцию программы — обучение пользователя. По большому счету, обращение с основными командами не вызовет затруднений у малоопытных пользователей, однако весь потенциал раскрывается только при изучении более продвинутых функций. Подавляющая часть этих функций основывается на встроенном языке сценариев Mp3tag (см. раздел Scripting functions документации).
Сценарный язык частично совместим с синтаксисом проигрывателя foobar2000. Его переменные можно разделить на общие, строковые, булевы, арифметические, связанные с метаданными и другие. Область применения языка — экспорт (в т. ч. и создание плейлистов), преобразования, действия. Последние две возможности будут рассмотрены более подробно.
Преобразование (конвертация)
Mp3tag, как было отмечено выше, предлагает пользователю различные инструменты для массовой работы с тегами, и в первую очередь — преобразование. Оно затрагивает не только теги, но также имена файлов, позволяя установить между ними соответствие, упорядочить файлы и теги на основе заданного формата. Формат задается с помощью заполнителей (плейсхолдеров):
%album% Альбом
%artist% Артист
%comment% Комментарий
В название файла или тег может быть добавлена техническая информация (кодек, битрейт), информация о расположении файла (директория, путь), свойства файла (размер, дата изменения), системные переменные (счетчик, количество файлов, дата). Пример использования различных плейсхолдеров:
Полный список плейсхолдеров представлен в документации, раздел Convert.
Таким образом, с помощью конвертации можно осуществлять операции с тегами, именами файлов в различных направлениях, заданных пользователем. Любая операция обратима, поэтому можно безбоязненно экспериментировать с форматом строки шаблона. Кстати, плейсхолдеры в Mp3tag универсальны, используются они в колонках, сценариях, действиях и др.
Небольшое примечание: для решения такой тривиальной задачи, как нумерация треков, нет необходимости в создании действия, использовании скриптов: в меню «Дополнительно» имеется команда «Мастер присвоения номеров».
Действия
Множество операций с текстовыми массивами могут помочь при наведении порядка в домашней коррекции. Еще больше возможностей, по сравнению с конвертацией, открывается благодаря действиям (actions). Каждое действие представляют собой последовательность команд, объединенных в группы. С их помощью можно автоматизировать процесс работы с тегами, начиная импортом и заканчивая экспортом. Впрочем, действия применимы только к именам файлов и тегов, поэтому доступны соответствующие операции: например, переименование с помощью регулярных выражений, смена регистра, удаление дубликатов, полей, объединение полей, экспорт обложки в файл и другие.
При замене можно использовать регулярные выражения (Regular expression, или regex) — синтаксис этого языка достаточно часто применяется в редакторах исходного кода и предоставляет очень широкие возможности для составления запросов.
Импорт
Одна из немногих онлайн-возможностей программы, одновременно связанная с импортом — это поддержка сервисов Amazon, discogs, freedb, MusicBrainz. Оцифровав аудиодиск, несложно найти метаданные об альбоме и применить к неозаглавленным трекам, не вводя текст вручную.
Первый очевидный вариант — получение информации с сервера Freedb. База данных может храниться на локальном компьютере (настройки см. в «Источники тегов > Локальная база данных freedb»). Содержимое определяется по вставленному Audio-CD, по выделенным файлам, по результатам поиска, также возможно самостоятельно указать идентификатор в базе.
Получение данных с Freedb осуществляется не всегда корректно, ввиду конфликтов с кодировкой. В таком случае на выбор представлены другие сервисы, удобные в обращении с Mp3tag — те же Amazon или MusicBrainz.
В окне «Проверка найденной информации» можно установить соответствие между найденной информацией и имеющимися треками. Во всех случаях, помимо текстовых данных, легко прикрепить к альбому обложку. Правда, для проверки правильности выбора альбома или просмотра изображения необходимо перейти на сайт выбранного сервиса.
Экспорт
В программе есть возможность создавать как плейлисты в стандартном формате m3u, а также в виде списка заданного файлового расширения. Команда доступна через «Файл > Экспорт». В наличии варианты экспорта в форматы csv, html, rtf, текстовый файл.
Каждая из конфигураций практически готова для применения, однако для изменения внешнего вида, столбца, последовательности данных необходимо вмешательство в код шаблона.
Каждый шаблон содержит в себе переменные. Кроме того, предусмотрено создание новых конфигураций, где можно указать кодировку (ansi, utf-8 и utf-16), поля для подстановки данных. Все опции экспорта доступны в документации, со списком переменных. Для подстановки используются петли — loops, также может быть задействован язык сценариев, плейсхолдеры.
Несмотря на широкие экспортные возможности, заложенные в текстовые шаблоны, мастер пошаговой настройки плейлиста был бы полезен — как упрощенный вариант конфигурации, легкодоступный для понимания.
Резюме
Mp3tag отлично показывает себя при массовой работе с тегами, а также непосредственно при ручном добавлении метаданных. Грамотное использование сценариев поможет оптимизировать работу с аудиотекой, решить частные вопросы. С другой стороны, программа требует вникания, последовательного изучения документации. Нужно понимать, что графический интерфейс расположен к пользователю только при использовании базовых операций с тегами.
[+] Поддержка импорта и экспорта
[+] Широкие возможности по массовому редактированию тегов
[+] Поддержка сценариев
[−] Отсутствие встроенного проигрывателя
[−] Большинство функций доступно только опытному пользователю
Внутри MP3. А как оно всё устроено?
Однажды мне понадобилось решить простенькую (как мне тогда казалось) задачу – в PHP-скрипте узнать длительность mp3-файла. Я слышал о ID3 тегах и сразу подумал, что информация о длительности хранится либо в тегах, либо в заголовках mp3-файла. Поверхностные поиски в интернете показали что за пару-тройку минут решить эту задачу не получится. Поскольку от природы я довольно любопытен а время не поджимало — решил не использовать сторонние инструменты а разобраться в одном из самых популярных форматов самостоятельно.
Если Вам интересно, что там внутри – добро пожаловать под кат (трафик).
В данной статье мы не будем подробно останавливаться на извлечении ID3v2 тегов – это можно вынести в отдельную статью, так как там есть различные нюансы. А так же на фрагментах заголовков, которые практически не используются в настоящее время (например, часть Emphasis заголовка mp3-фрейма). Так же мы не рассматриваем структуру самих аудиоданных — тех самых, которые слышим из колонок.
ID3 теги
ID3 (от англ. Identify a MP3) — формат метаданных, наиболее часто используемый в звуковых файлах в формате MP3. ID3 подпись содержит данные о названии трека, альбома, имени исполнителя и т. д., которые используются мультимедиапроигрывателями и другими программами, а также аппаратными проигрывателями, для отображения информации о файле и автоматического упорядочивания аудиоколлекции.
Существует две абсолютно разных версии ID3-данных: ID3v1 и ID3v2.
ID3v1 – имеет фиксированный размер в 128 байт, которые дописываются в конец mp3-файла. Там можно хранить: название трека, исполнитель, альбом, год, комментарий, номер трека (для версии 1.1) и жанр.
Довольно быстро всем стало понятно, что 128 байт – очень уж небольшое место для хранения таких данных. И поэтому, со временем, появилась и успешно используется вторая версия данных – ID3v2.
В отличии от первой версии, теги v2 имеют переменную длину и размещаются в начале файла, что позволяет поддерживать потоковое воспроизведение. (Формат ID3v2.4 позволяет так же хранить данные и в конце файла).
Данные ID3v2 состоят из заголовка и последующих фреймов ID3v2. Например, в версии ID3v2.3 существует более 70 типов фреймов.
В данном случае вместе с заголовком ID3v2 (10 байт) – данные ID3v2 занимают 1024 байта.
После ID3v2-заголовка идут собственно теги. Подробный разбор чтения тегов ID3v2, как сказано выше, я решил не включать в эту статью.
Теперь у нас есть информация о наличии и длине тегов ID3 и мы можем приступать в разбору mp3-фрейма и понять-таки – где же хранится длительность. А заодно понять и всё остальное.
MP3-фрейм
Весь mp3-файл состоит из фреймов, которые можно извлекать только последовательно. Фрейм содержит в себе заголовок и аудио-данные. Поскольку мы не ставим себе целью написать прошивку для магнитофона – нас интересует именно заголовок фрейма.
О нем подробнее (куча таблиц и сухой информации)
Размер заголовка – 4 байта.
Режимы сжатия данных или какой бывает битрейт
Существует 3 режима сжатия данных:
CBR (constant bitrate) – постоянный битрейт. Не меняется на всем протяжении трека.
VBR (variable bitrate) – переменный битрейт. При этом сжатии битрейт постоянно меняется на протяжении трека.
ABR (average bitrate) – усредненный битрейт. Это понятие используется только при кодировании файла. На «выходе» получается файл с VBR.
Длительность = Размер аудиоданных / Битрейт (в битах!) * 8
Например, файл имеет размер 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-файла для теста.
Теги в аудиофайлах
История
Ранняя история сжатого цифрового аудио довольно необычна. Форматы MP2 и MP3 разрабатывались крупными компаниями и исследовательскими институтами для своих целей, в которые распространение музыки во всемирной сети Интернет никак не входило. Но случилось так, что результат их трудов известен нам сегодня именно в этом качестве.