Как узнать формат музыкального файла
В ХХ веке мы выбирали между носителями и средствами воспроизведения музыки. Кассеты, винил, компакт-диск – каждому формату носителя соответствовал свой плеер, у каждого были свои достоинства и недостатки. В XXI веке акценты значительно сместились. Средства воспроизведения стали всеядными, а выбирать приходится не формат носителя, а формат аудиофайла.
Во времена, когда цифровая музыка еще не проникла в компьютер так, как сейчас, выбор ценителей качественного звука был вполне прост и понятен. Большинство использовали CD, а те, кто мог позволить себе покупать аппаратуру и диски подороже, останавливали свой выбор на SACD или DVD-Audio проигрывателях, либо на универсальных моделях, воспроизводящих все форматы оптических аудио дисков. Сейчас же можно обзавестись высококачественным аудиоконтентом, не покупая диски, и в этом случае весь выбор сводится к тому, в каком формате хранить музыку.
На сегодняшний день существует несколько десятков форматов (кодеков) используемых для представления аудиофайлов. Среди них ходовыми можно назвать не более десятка. Сжатие звука с потерями чаще всего производят с помощью кодека MP3 (MPEG-1 Layer3), реже для этих целей используется формат WMA, являющийся собственной разработкой Microsoft; AAC, разработанный Apple или доступный в рамках свободной лицензии GPL формат Ogg Vorbis. Не будем останавливаться на вопросе сжатого аудио подробно, ограничимся кратким описанием.
Saehan Information Systems F10 – первый в мире mp3 плеер появился в 1998 году и стоил 250$
Формат МР3 и вышеупомянутые его аналоги, позволяют сжимать музыкальный материал CD качества в файлы меньшего размера (степень сжатия варьируется от 2:1 до 11:1). По задумке разработчиков, алгоритмы сжатия должны обрабатывать аудиопоток таким образом, чтобы звучание сжатого файла не отличалось от оригинала. Фактически разницу между звучанием сжатого файла и несжатого оригинала вполне можно услышать и чем выше класс качества аппаратуры, тем более очевидными становятся эти различия. Каких-либо сложностей с пережатием CD в МР3 или получением готовых МР3 файлов из интернета или на физическом носителе не существует.
Единственная специфика компрессионных файлов – возможность встраивания в них защиты от копирования или несанкционированного воспроизведения (DRM). Одним из главных инициаторов и распространителей технологии защиты аудиофайлов была компания Apple, которая, впрочем, достаточно скоро выступила с предложением отказа от подобных решений и призвала всех производителей музыкальной продукции распространять ее без защиты. С 2009 года музыка, реализуемая в iTunes Store, такой защиты не имеет. Подавляющее большинство сжатого контента, продаваемого через интернет и на физических носителях, также не имеет защиты от несанкционированного воспроизведения.
Интерфейс iTunes
Для хранения музыкальной информации в цифровом виде без потери качества существует несколько различных форматов. Без потерь и без сжатия аудиопоток сохраняется в файле WAV или AIFF. Тип файла в данном случае обусловлен типом операционной системы, в которой производится сохранение аудиопотка. Формат WAV является совместной разработкой Microsoft и IBM, а AIFF – детище Apple. Существуют также фирменные форматы сжатия аудио без потерь: WMA Loseless (другое название WMA9) у Microsoft и ALAC у Apple. Из них лишь второй получил распространение благодаря тому, что является едва ли не единственным способом послушать высококачественное аудио с устройств, работающих под управлением iOS.
Еще один вариант хранения аудиоконтента без сжатия – образы дисков, представляющие единый файл с расширением ISO, который является не измененной копией содержимого цифрового носителя.
Самым широко распространенным форматом сжатия музыки без потерь является формат FLAC (Free Lossless Audio Codec). Как следует из его названия, это формат, распространяется на условиях свободной лицензии, а значит для того, чтобы обеспечить его поддержку в любом аудиоустройстве – не нужно платить лицензионных отчислений. FLAC позволяет сохранять аудиодорожки с количеством каналов до восьми и разрядностью до 32 бит и практически неограниченной частотой дискретизации, что позволяет использовать его для хранения любого контента, включая многоканальные звуковые дорожки HD качества. Популярность FLAC в качестве кодека для сжатия высококачественного аудио столь же велика, сколь велика популярность МР3 среди компрессионных аудиоформатов. Подавляющее большинство музыки высокого качества хранится и распространяется именно в формате FLAC.
Кодек Monkey's Audio
Существуют также альтернативные форматы сжатия аудиофайлов без потерь, которые используются в домашних оцифровках и для хранения музыки с компакт-дисков. Первый из них – Monkey's Audio, также известный по названию расширения файла АРЕ. Он является лицензируемым, что ограничивает его поддержку в бытовых аудиоустройствах и портативных плеерах. Для кодирования и воспроизведения формата АРЕ в компьютере каких-либо ощутимых ограничений для пользователя не наблюдается. На официальном сайте разработчика можно скачать программу для конвертации, а в большинстве софтверных проигрывателей есть возможность воспроизведения файлов .аре. Данный формат имеет одно существенное ограничение, касающееся максимального количества и качества дорожек. Он поддерживает только двухканальную запись, с максимальной разрядностью 24 бит и частоту дискретизации до 96 кГц, что не позволяет использовать его для хранения многоканальных записей и аудиодорожек максимально высокого на сегодняшний момент качества 24бит/192кГц.
Сравнительно недавно любители качественного аудио начали использовать еще один формат сжатия музыки без потерь – WavPack (расширение файла .wv). По своим возможностям он приближен к формату FLAC. WavPack поддерживает качество вплоть до 32бит/192кГц и может применяться для хранения многоканальной музыки. Этот формат также является открытым, распространяемым бесплатно. Поддержку WavPack в стационарных медиаплеерах можно встретить в редких случаях. Общей особенностью форматов, позволяющих сжимать музыкальные файлы без потерь качества, является не только почти двукратная экономия дискового пространства, но еще и возможность встраивать в файл различную дополнительную информацию, например теги с именем исполнителя, названием и датой выхода альбома, которые будут отображаться при воспроизведении файла.
В следующей части цикла статей о сетевой музыке мы более подробно расскажем о высококачественных форматах хранения музыкальных файлов.
Большинство программ медиаплееров позволяет просмотреть характеристики видео- или аудиофайла. Чаще всего нас интересует размер файла, битрейт аудио- и видеопотока, кодек, формат файла, разрешение, частота и другие параметры. Плееры способны предоставить большую часть этих характеристик. Далее мы рассмотрим, как получить информацию об аудио- или видеофайле в самых распространённых медиаплеерах.
Windows Media Player
Правый клик на файле в списке воспроизведения и выбор пункта Свойства позволяет нам открыть окно с информацией о файле. К сожалению, Windows Media Player предоставляет минимум данных: только продолжительность, тип видео, размер и соотношение сторон, скорость потока и названия аудио- и видеокодеков.
KM Player
В этом популярном плеере вызов окна с информацией осуществляется нажатием клавиш Alt + J или выбором пункта Информация о записи… в контекстном меню (вызывается правым кликом в панели).
KM Player предоставляет гораздо больше информации о файле, чем предыдущий плеер. Здесь данные отображаются отдельно для видеопотока и аудиопотока. К тому же видно битрейт, частоту аудио и кадров, глубину, количество каналов и другие технические данные о файле.
LA Player
Чтобы открыть окно информации, жмём кнопку [i] или выбираем в контекстном меню Файл – Информация о файле…, для любителей клавиатурных комбинаций тоже есть способ: Ctrl + I.
LA Player отображает информацию в удобном табличном виде, где мы можем узнать формат, размер и длительность файла, а также кодеки, размер изображения и частоту кадров, битрейт и частоту аудиопотока.
В этом лёгком плеере открываем меню Файл – Свойства… и видим почти тот же набор данных, что и в предыдущем плеере.
VLC
В меню выбираем Инструменты – Codec Information для просмотра информации о файле. К сожалению мы увидим минимум данных о файле – названия кодеков, разрешение, частоту и битрейт.
Плеер отображает следующую информацию о видеофайле: разрешение, частота, битрейт, видео- и аудиоформат и кодек, количество каналов, соотношение сторон. Вызов окна через меню Movie – Info.
Как узнать характеристики видеофайла или аудиозаписи? Многим пользователям для этого достаточно возможностей Windows, когда в свойствах файла отображается некоторая информация. Предлагаемая утилита MediaInfo позволяет узнать всю информацию о файле, в том числе о кодеках, битрейте, разрешении и других параметрах.
Как узнать характеристики видеофайла или аудиозаписи? Многим пользователям для этого достаточно возможностей Windows, когда в свойствах файла отображается некоторая информация. Предлагаемая утилита MediaInfo позволяет узнать всю информацию о файле, в том числе о кодеках, битрейте, разрешении и других параметрах.
После установки MediaInfo появляется окно настроек. Здесь можно выбрать язык интерфейса, и поставить флажок для добавления ссылки в контекстное меню Проводника (добавится пункт MediaInfo, при нажатии открывает программу с данными о выбранном файле). Позже к этим настройкам можно вернуться через меню Параметры – Предпочтения.
Чтобы узнать информацию о файле, достаточно открыть его через меню Файл – Открыть – Файл и выбрать любой мультимедийный файл. Тут же мы видим все технические данные файла.
Как видим, такой режим отображения информации не совсем удобен. В программе предусмотрено несколько других режимов, выбрать которые можно либо нажатием кнопки в левом нижнем углу окна, либо через меню Просмотр – режим.
По умолчанию включен режим Кратко. Помимо этого доступны ещё табличный, текстовой, выборочный, а также в виде дерева и HTML. Пример отображения характеристик видеофайла в древовидной структуре:
Текстовой режим удобен для выделения и копирования всей информации о файле. В MediaInfo предусмотрена возможность экспорта данных в файл. Через меню Файл – Экспорт можно экспортировать в следующие форматы: CSV, TXT и HTML. Выбираем формат, указываем папку для сохранения и жмём кнопку [OK]. Там же можно включить опцию Добавить к файлу, и информация будет дописана в существующий файл.
Утилита позволяет открывать одновременно сразу несколько файлов через меню Файл – Открыть – Папка… Просматривать технические данные для нескольких файлов также быстро и удобно, особенно в табличном режиме, когда вверху окна мы видим список файлов, при клике на любом ниже отображается информация о нём.
Часто в одном видеофайле присутствует несколько звуковых дорожек. В таком случае в разделе аудиоданных отображается количество аудиопотоков. А уже после выбора определённой дорожки мы видим информацию о ней.
Итак, бесплатная утилита MediaInfo, размером всего около 1,5 мегабайт, позволяет получить все данные о файле. Аналогичная функция есть в большинстве программ-медиаплееров. Правда, не всегда они дают информацию о видео- или аудиофайле в таком объёме и представлении, как MediaInfo.
Всех приветствую, кто заглянул на огонек. Речь в обзоре пойдет, как вы наверно уже догадались, о четырех бесплатных программах, предназначенных для проверки качества аудиозаписей в формате MP3. Программы бесплатные и большинство из них имеет понятный интерфейс, многие из них не требуют установки и могут работать с флешки. Если заинтересовались, милости прошу.
Несмотря на преклонный возраст, формат звука MP3 (MPEG-1 audio layer 3) по-прежнему остается лидером и большинство музыкальных треков и других звукозаписей кодируются именно в этом формате. Из преимуществ можно отметить хорошее качество на выходе, отличную компрессию, аппаратную поддержку практически на всей аппаратуре, низкие системные требования и поддержку со стороны всех редакторов. Минусов немного и если опустить ограничения на количество каналов (максимум два) и частоту дискретизации (максимум 48кГц), которые не очень то и критичны, то самым главным можно считать особенность кодера, который использует спектральные отсечения согласно психоакустической модели. Если простыми словами, то кодер берет за основу слух среднестатистического человека, который в теории не слышит ниже 20 Гц (глубокие упругие басы) и выше 15 кГц (детализация речи, вокальные инструменты и прочее) и отрезает ту самую часть спектра, либо больше, если выставлено низкое качество. Зачем кодировать то, что многие не в силах услышать или не хотят приобретать аппаратуру, способную это воспроизводить? Также подумали разработчики и создали замечательный формат MP3. Все что за этими пределами – удел Hi-Res аудио, а там главенствуют другие форматы, да и ценники на аппаратуру совсем другие, поэтому если хотите «слышать все», переходите на «новый уровень».
Для распространенной бытовой аппаратуры формат MP3 наиболее предпочтителен, на нем и остановимся. Благодаря своеобразному алгоритму кодирования, есть возможность быстрого определения действительно качественных аудиозаписей, полученных путем кодирования с CD-DA или конвертирования с Lossless (несжатого) источника от апконвертов, т.е. полученных путем конвертирования из более низкого в более высокое качество (128kbps -> 320kbps). Наиболее популярные кодеры делают характерный срез в зависимости от битрейта:
- CBR 320 – 20000-20500 Гц
- CBR 256 — 19500 Гц
- CBR 192 – 18000-18500 Гц
- CBR 160 – 16500-17000 Гц
- CBR 128 — 16000 Гц
- VBR V0 — 22100 Гц
- VBR V2 — 18500 Гц
Все это можно посмотреть на наглядных спектрограммах. В качестве примера трек с качеством 320kbps:
Можно заметить характерный срез на 20,5 кГц, а почти все, что выше, вырезалось кодером. Остались только небольшие всплески, которые алгоритм счел нужным оставить. Также срезалась небольшая часть информации выше 16 кГц, виден небольшой «бордюр». В оригинале спектрограмма следующая:
Если сравнить размеры файла, то во FLACе трек весит в 3 раза больше, чем в MP3 320kbps:
Если взглянуть на спектрограмму с битрейтом 128kbps, то там вырезано практически все, что выше 16 кГц:
Если у вас не «изысканный» слух и нет соответствующей аппаратуры, способной досконально воспроизводить несжатую музыку, то особого смысла за ней гнаться нет, хватит и честного MP3 320kbps. Но вот главная проблема заключается в том, что некоторые недобросовестные пользователи конвертируют треки из 128kbps, выдавая их за 320kbps (апконверт). При аналогичном размере качество будет соответствовать 128kbps, поэтому дабы не хранить гигабайты «дутых» треков, есть несколько программ, помогающих выявить «пережатки».
Наиболее популярная программа для проверки аудиозаписей:
Размер крохотный, есть портабельная и установочные версии. Для удобства рекомендую добавить соответствующий пункт в контекстное меню проводника. К сожалению, не умеет работать с несколькими файлами одновременно, поэтому проверка всей музыкальной коллекции/диска может затянуться.
Spectro:
Представляет собой альтернативу предыдущей программы, но дополнительно выдает некоторую информацию по треку:
Также как и предыдущая, не умеет работать с несколькими файлами (папками) одновременно.
Foobar:
Представляет собой многофункциональный плеер с огромным количеством настроек и плагинов, с помощью которых можно строить спектрограммы. Сам я пользуюсь AIMPом и SPEKом, поэтому себе не устанавливал и в подробности настроек не вникал.
Console Audio Tools:
Представляет собой пакет утилит для проверки и конвертации аудиофайлов. Умеет стоить наглядные спектрограммы:
Программа консольная, графической оболочки не имеет, поэтому не очень удобна в использовании.
*Upd, совсем забыл про замечательную программу Audacity, спасибо Stanislav Yuzva, что напомнил про нее
Audacity:
Представляет собой полноценный звуковой редактор, в котором можно отредактировать трек/дорожки, перекодировать в другой формат, записать звук с любого источника и многое другое:
Основной упор сделан именно на редактирование: склейка/обрезка, изменение параметров звучания и наложение эффектов, сведение дорожек и прочее. В отличие от популярных монстров типа Adobe Audition, эта программа небольшая (есть портабельная версия) и абсолютно бесплатная. Единственный минус, нет быстрого доступа к построению спектрограммы, первые две проги в этом плане гораздо предпочтительнее.
Выводы:
Это далеко не полный список программ, но я попытался рассказать о наиболее простых и бесплатных, использование которых не потребует каких-либо дополнительных знаний. С их помощью можно с легкостью выявить апконверт в своей коллекции и при желании заменить трек на более качественный.
Однажды мне понадобилось решить простенькую (как мне тогда казалось) задачу – в PHP-скрипте узнать длительность mp3-файла. Я слышал о ID3 тегах и сразу подумал, что информация о длительности хранится либо в тегах, либо в заголовках mp3-файла. Поверхностные поиски в интернете показали что за пару-тройку минут решить эту задачу не получится. Поскольку от природы я довольно любопытен а время не поджимало — решил не использовать сторонние инструменты а разобраться в одном из самых популярных форматов самостоятельно.
Если Вам интересно, что там внутри – добро пожаловать под кат (трафик).
В данной статье мы не будем подробно останавливаться на извлечении ID3v2 тегов – это можно вынести в отдельную статью, так как там есть различные нюансы. А так же на фрагментах заголовков, которые практически не используются в настоящее время (например, часть Emphasis заголовка mp3-фрейма). Так же мы не рассматриваем структуру самих аудиоданных — тех самых, которые слышим из колонок.
ID3 (от англ. Identify a MP3) — формат метаданных, наиболее часто используемый в звуковых файлах в формате 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-файл состоит из фреймов, которые можно извлекать только последовательно. Фрейм содержит в себе заголовок и аудио-данные. Поскольку мы не ставим себе целью написать прошивку для магнитофона – нас интересует именно заголовок фрейма.
О нем подробнее (куча таблиц и сухой информации)
Размер заголовка – 4 байта.
- 10 Маркер – 11 бит, заполненные единицами (Frame sync)
- 12 Индекс версии MPEG (Audio version ID)
- 13 Индекс версии Layer (Layer index)
Кстати, MP3 – это MPEG-1 Layer III - [15] Бит защиты (Protection bit)
1 – нет защиты
0 – заголовок защищен 16-бит. CRC (следует за заголовком) - 16 Индекс битрейта (Bitrate index)
В таблице хранятся значения битрейта в килобит/сек. Однако в данном формате подразумевается, что 1 килобит = 1000 бит, а не 1024. Таким образом 96 Кбит/сек = 96000 бит/сек. - 21 Индекс частоты дискретизации (Sampling rate index)
- [22] Бит смещения (Padding bit)
Если он установлен, то данные смещаются на 1 байт. Это важно для расчета размера фрейма. - [23] Бит private (только для информации)
- 25 Режим канала (Channel mode)
- 27 Расширение режима канала. (Mode extension) Используется только с Joint stereo
- [28] Копирайт (Copyright bit) – только для информации
- [29] Оригинал (Original bit) – только для информации.
- 30 Акцент (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-файла для теста.
Читайте также:
- Как обновить андроид на телефоне самсунг а50 браузер бесплатно без регистрации
- Какой порт tcp ip по умолчанию используется почтовыми программами the bat mozilla thunderbird
- Программы для ускорения интернета для windows 10
- Adobe creative suite 5 design premium что это
- 1с срез последних на дату выдает несколько записей