Формат mp3 структура файла

Обновлено: 30.06.2024

В общем в начале или в конце файла mp3 количество байт, записи исполнителя, название, название альбома, возраст, стиль и другую информацию, mp3 файлов, ID3 квинтильных в двух версий, V1 версия ID3 фиксированных 128 слов на конец файла фестиваля, начиная с TAG характера, если не считать бесплатную информацию ID3v1, V2 версия mp3 ID3 в начале переменной длины.

Пер извлекается из непрерывного сигнала и дискретного сигнала, составленный из числа образцов, которые в герцах (Гц), выраженном, частота дискретизации частота дискретизации преобразования аналогового сигнала в цифровой сигнал, то есть, сколько выборки точек на единицу времени , тем выше частота дискретизации, тем более реальное более естественное сокращение звука, в современной карте сбора основной, частота дискретизации , как правило , делятся на 22.05KHz, 44.1, 48KHz три уровня, 22.05KHz может достичь только качество звука FM - радио, 44,1 качество KHz CD является теоретический предел, 48KHz более точное число.

ü Скорость передачи данных:

Скорость передачи битов передается бит в секунду (бит) числа. Единицы бит (бит в секунду), тем выше скорость передачи битов, тем больше передача данных. В полях аудио и видео, скорость передачи в битах часто переводятся как битрейт, представление аудио скорости передачи в битах через закодированный (сжатый), бит видеоданных в секунду требуемого числа бит является наималейшей единицей , используемой для обозначения двоичных внутри, и либо 0 или 1. Скорость передачи в битах, и аудио и видео сжатия отношения, просто означает, что чем выше скорость передачи в битах, качество аудио, видео, тем лучше, но кодированный файл больше, если скорость передачи битов изменяется от ситуации как раз наоборот.

* Частота дискретизации = битрейт бит на выборку * количество каналов

Все для скорости / потока / скорость передачи в битах:

Относится к аудио, видео файлам трафик данных для использования в единице времени, популярная точка понимания является частотой дискретизации, аудио, видео кодирования является наиболее важной частью контроля качества в целом, блок мы используем Кб / с, Мб / с. Как правило, чем больше поток, тем меньше степень сжатия, тем выше качество. Чем больше поток, тем больше частота дискретизации в единицу времени, поток данных, тем выше точность, тем более близко к рукоятку из исходного файла

С точки зрения теории информации, данные, описывающие источник информации и суммы избыточности данных, а именно: данные = данные + избыточной информации. Соответствующий звуковой сигнал во временной области и частотной области, то есть имеет место избыточность данных. В качестве источника звука, аудио кодирования является существенным уменьшить избыточность в аудио.

Звук очень сложный характер, чрезвычайно сложные формы волны, как правило, мы используем Pulse Code Modulation кодирование, кодирование, т.е. PCM. ИКЙ путем отбора проб, квантование, кодирование три шага непрерывного изменения аналогового сигнала в цифровой код

Все для декодирования:

Обратный процесс кодирования

1.1.2. MP3 краткое

MP3 - называемый MPEG Audio Layer 3, который является эффективными вычислительными схемами кодирования звука, степень сжатия тем больше он преобразует звуковой файл в меньшие расширениях файлов .mp3, и остался исходные файлы звук, МР3 Это является частью ISO / MPEG стандарты,

Стандарт ИСО / MPEG описывает использование сжатия высокоэффективного восприятия звука схемы кодирования, этот стандарт был обновлен для удовлетворения «высокого качество , небольшое количество» преследование было сформированы MPEG Layer1, Layer2, Layer3 три аудиокодек схемы, соответственно соответствие MP1, MP2 , MP3 звуковые файлы из этих трех

MPEG (Moving Picture Группа экспертов) является Moving Picture Experts Group в ISO, который определяет широкий спектр мультимедиа применительно к стандарту MPEG, стандарт MPEG включает в себя стандартное видео и аудио, который разработал аудио стандарт MPEG-1, MPEG -2, MPEG-2 АСС, MPEG-4. MPEG1 и MPEG-2 стандарт использует тот же аудиокодек семейство Layer1,2,3, стандартный MP3 MPEG1 используется в подавляющем большинстве

MP3-кодирование и декодирование, состоящие из двух частей сжатия звука, кодирование заключается в преобразовании исходного сигнала на уровень процесса сигнала, т.е. декодирования, обратный процесс, то алгоритм МР3-искажение использует воспринимаемое аудио кодирования (PerceptualAudio кодирования). Чувство человеческого уха звуковых диапазон частот 20Гц-20кГц, MP3 - ампутацию большого количества избыточных сигналов и не зависит от сигналов, кодер банка фильтров путем смешивания исходного звука в частотной области, с помощью психоакустической модели можно оценить только воспринимаемый уровень шума, и затем квантуется, преобразуется в кодирование Хаффмана, MP3-битовый поток формируется. Декодер гораздо проще, и его задача состоит в том из кодированного спектрального компонента, после обратного квантования и обратное преобразование, чтобы извлечь звуковой сигнал.

Данные MP3-файл состоит из множества кадров, кадр является наименьшим составную часть файла MP3. Каждый кадр имеет заголовок, дополнительную информацию и звуковые данные. Каждый раз, когда воспроизведение кадра .026 секунд, с его длиной, не дожидаясь различными скорости передачи данных. Некоторые файлы MP3 в конце дополнительных байтов для хранения некоторых описательной информации неречевых данных.

1.2. Структура MP3-файл

MP3-файлы обычно делятся на три части: ID3v2 + аудио + ID3v1


1.3. ID3V2 Решимость

ID3V2 в общей сложности четырех версий, ID3V2.1 / 2,2 / 2,3 / 2,4, популярный программный проигрыватель в целом поддерживают третье издание, которое ID3v2.3, из - за ID3V1 записывается в конец файла, ID3V2 может записывать только в заголовке файла , а также по этой причине, операция ID3V2 медленнее, чем ID3v1, ID3v2 и структуру сложной структуры, чем ID3v1, ID3v2, но может записывать больше информации переменной длины,

ID3v2.3 состоит из головки и этикеток нескольких кадров тегов или расширенной головки тега, по меньшей мере, один тег кадра, каждый тег кадр записывает один вид информации, такие как композитор, название, и т.д.

1.3.1. Этикетка головы

Расположенная в самом начале документа, длина 10 байт, структура выглядит следующим образом:

Char Header [3]; / * должен "ID3" в противном случае считает, что метка не существует * /

Char версии; / * номер версии ID3v2.3 записи 3 * /

Пересмотр Чар; / * Суб-номер версии записывается как 0 * /

Char флаг; / * логотип байт, только три цифры, другой бит 0 * /

Символьного размер [4]; / ​​* Размер этикетки * /

Примечание: Размер этикетки не может быть определенно, какое содержание, после разбора файла песни, считает, что нет суммы слов и т.д., см анализа экземпляра ниже.

Знак байт, как правило, 0, определяется следующим образом (ABC000000B)

A: Указывает, используется ли unsynchronisation

б: указывает, есть ли расширенная головка, как правило, нет, так что, как правило, не указан

с: указывает, является ли этотестовое заданиеЭтикетка, 99,99% этикеток не проверить этикетки, не установлены

. Размер бирки имеет в общей сложности четыре байта, и каждый байт используется только 7 биты старший бит не использует константу 0. При вычислении старшего бита, получают данные 28bit, формула расчета выглядит следующим образом:


1.3.2. Этикетка кадра

Каждая метка кадр имеет 10 байт головы кадра (и голова тега не вещь, хотя они просто 10 байт, головка метки имеет только один, каждую метку кадр имеет заголовок кадра) и по меньшей мере один байты содержимого, этикетки кадр не является особенно байт сегментации с этикеткой головки / другого кадра тега, и только содержание кадра может быть определено с помощью информации заголовка кадра.

Длина заголовка кадра составляет 10 байт, определяется следующим образом:

Символьный ID [4]; / ​​* Определяет кадр, указывающее содержание, например, автор / название и т.д. * /

Символьного размер [4]; / ​​* Размер содержимого кадра, не включает в себя головку кадра, не менее 1 * /

Символьные флаги [2]; / * логотип кадра, только 6 цифр * /

Определить кадр, общее содержание следующим образом:

TRCK = формат дорожки: н / м, где N является девятым п-й, М представляет собой количество специального набора M первого, N и М представляет собой ASCII-код

TYER = эпоха число, представленное ASCII код

TCON = Введите прямое использование строк

COMM = Примечания Формат: «анг \ 0 Содержания Примечания», который представляет собой естественный язык Примечание анг используется

Размер содержания кадра, формула расчета выглядит следующим образом:

Size = Size[0]*0x100000000 + Size[1]*0x10000+ Size[2]*0x100 +Size[3];

Рамка кадра, использовать высокие три цифры каждого байта, остальные биты равны 0 (ABC00000B XYZ00000B)

A - Метка защиты логотипа, при настройке, этот кадр считается отходами

B - File Protection знак, я думаю, что этот кадр считается

C - только для чтения флага, думает, что этот кадр не может быть изменен

X - Сжатый флаг, установите один байты, когда наборы два код BCD указует номера

Y - знак шифрования

Z - группа знак, установка При настройке этого кадра и другие кадры представляют собой группу


1.4. Анализ данных Аудио

Каждый кадр имеет заголовок кадра, длина составляет четыре байта, а рама может иметь 2 байта проверки CRC, в зависимости от 16 - го бита кадра, нет никакой проверки на 0, и один чек, а затем переменная длина дополнительной информации для стандартных файлов MP3, его длина составляет 32 байт, сразу после сжатого аудио данных, когда декодер декодирует прочитать здесь.


1.4.1. Кадр данных Руководитель

Длина заголовка кадра составляет 4 байта, структура выглядит следующим образом:

Неподписанный INT синхронизация: 11; // Информация о синхронизации

Подписанная версия INT: 2; // версия

Неподписанный INT Уровень: 2; //

Unsigned защита INT ошибка: 1; // проверка CRC

Неподписанный INT bitrate_index: 4; // скорость передачи в битах

Неподписанный INT sampling_frequency: 2; // Частота дискретизации

Неподписанный INT утеплитель: 1; // регулировка длины кадра

Неподписанный INT prizte: 1; // Зарезервировано слово

Режим Неподписанного INT: 2; // режим канала

Unsigned расширение режима INT: 2; // режим расширения

Неподписанный INT Copyright: 1; // Copyright

Неподписанный INT оригинал: 1; // Оригинальный логотип

Неподписанный INT Упор: 2; // подчеркнул режим


1.4.2. Длина рамы и истинный размер

Размер кадра число выборок в кадре, с указанием количества образцов, отобранных в одном кадре, который является постоянным, как показано в следующей таблице:


Длина кадра равна длина каждого кадра при сжатии, в том числе 4 байт заголовка кадра. Он рассчитывает заполнение вакансии. Слой 1 является длиной вакансионных 4 байта, вакансия уровня 2 и 3 составляет 1 байт. Это значение должно быть рассчитано при чтении файла MPEG, чтобы найти смежные кадры. Примечание: Поскольку существует заливка и битрейт преобразования, длина кадра может измениться

Рассчитано следующим образом:

Слой 1: LEN (байт) = ((образец на кадр / 8 * битовой скорости) / частота дискретизации) + заполнение * 4

Layer2 / 3: LEN (байт) = ((образец на кадр / 8 * битовой скорости) / частота дискретизации) + обивка

Пример: MPEG1 layer3 битрейт 128000, частота дискретизации 44100, заполняя 0, длина кадра равна: ((1152/8 * 128K) / 44.1k + 0 = 417 байт

1.4.3. Кадры в последний раз

Продолжительность (миллисекунды) для каждого кадра (мс) = образец номер / частота дискретизации для каждого кадра * 1000

Пример: 1152/441000 * 1000 = 26ms

1.4.4. Кадр данных

После того, как головки рамы является Side Info (так называемый информационный канал). Для стандартных стерео MP3-файлов, его длина составляет 32 байт. Когда декодер считывается после того, как указанная выше информация считывается, оно может быть декодировано.

Для MP3, в настоящее время существует два способа кодирования, один является ЦБР, которая является фиксированной скорость передачи в битах, а размер фиксированной скорости передачи битов фиксируется во всем файле (формула, как описано выше), до тех пор, как сумма длина файла известна. И информация считывается из первого заголовка кадра может быть вычислена путем вычисления информации этого MP3 - файл, например, общее количество кадров, общее время воспроизведения и т.д., должны быть расположены на кадр или определенный момент времени. Кроме того , очень удобно, этот метод кодирования не требует файл голову, и первый кадр начинает быть аудиоданными. Другой VBR, что переменная скорость передачи в битах. VBR является алгоритмом введен Xing, так что не будет «син» в Рамках MP3 (также использовать «данные» , чтобы определить, сейчас много популярного сжатие VBR небольшого программного обеспечения также может быть выполнено. Если они соответствуют этому соглашению, неизвестно), который хранится в области данных первого действительного кадра в файле MP3, он определяет, что это MP3-файл VBR. В то же время, первый кадр содержит общее количество кадров в файл MP3, который легко получить общее время игры, и есть 100 времени индекс сегментации кадр общего времени воспроизведения, предположит , 4 минуты MP3-песни, 240 с, разделенные на 100 сегментов, каждая разница во время индекса два соседних является 2.4S, поэтому через этот индекс, пока меньшинство кадра может быстро найти заголовок быстрой перемотки вперед кадра. На самом деле, это первый кадр эквивалентно заголовка файла. Тем не менее, некоторые кодеры теперь при входе в первый кадр, как VBR при кодировании файла CBR, такие как знаменитая Лама, который использует «информацию», чтобы сделать CBR тег.

1.4.5. Заголовочный файл VBR

Заголовок VBR файл находится в области данных первого действительного кадра в файле MP3 подробная структура выглядит следующим образом.:


1.5. Анализ ID3V1

Стандарт ID3 V1.0 не распространяются, информация, хранимая мала, и лирика не может быть сохранена, и обложка альбома, изображение и т.д., не может быть введена. V2.0 является довольно полным стандартом, но испытывает трудность с программным обеспечением для записи, хотя есть много людей в этом формате, который действительно реализован в программном обеспечении. Большинство MP3-прежнему использует стандарты ID3 V1.0. Этот стандарт для хранения информации ID3 на последних 128 байт файлов MP3.


Однажды мне понадобилось решить простенькую (как мне тогда казалось) задачу – в 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 байта.


  • 3 Маркер – 11 бит, заполненные единицами (Frame sync)
  • 12 Индекс версии MPEG (Audio version ID)
  • 13 Индекс версии Layer (Layer index)

    Кстати, MP3 – это MPEG-1 Layer III
  • [15] Бит защиты (Protection bit)
    1 – нет защиты
    0 – заголовок защищен 16-бит. CRC (следует за заголовком)
  • 18 Индекс битрейта (Bitrate index)

    В таблице хранятся значения битрейта в килобит/сек. Однако в данном формате подразумевается, что 1 килобит = 1000 бит, а не 1024. Таким образом 96 Кбит/сек = 96000 бит/сек.
  • 20 Индекс частоты дискретизации (Sampling rate index)
  • [22] Бит смещения (Padding bit)
    Если он установлен, то данные смещаются на 1 байт. Это важно для расчета размера фрейма.
  • [23] Бит private (только для информации)
  • 24 Режим канала (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.


Если файл закодирован с постоянным битрейтом – то мы уже можем наконец-то! получить длительность нашего трека по следующей формуле:
Длительность = Размер аудиоданных / Битрейт (в битах!) * 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-файла для теста.

аватар

Немного про формат

MP3 расшифровывается как MPEG 1 Layer 3, т.е. MPEG версии 1, третья редакция, или как-то в этом роде. Нам важно понять, что бывает еще MPEG 2, а Layer не обязательно может быть третьим. Что такое MPEG, почему Layer 3, чем отличается MPEG1 от MPEG2, и прочие подобные вопросы я рассматривать не буду, т.к. это само по себе тянет на отдельную статью. MP3 это сжатый формат, сжатие достигается за счет убирания из исходного звука частот заведомо не слышимых человеком, ну и еще за счет алгоритма сжатия какого-нибудь (это я тоже не буду здесь рассматривать). Именно поэтому сжимать архиваторами MP3 файлы не получается (вернее получается, но результат не впечатляет), они уже сжатые. Внутри файл состоит из фреймов. Заголовка у MP3 файла нет, зато у каждого фрейма есть свой заголовок, с ним то мы и будем в основном работать. Фрейм можно рассматривать, как некий дискретный кусок звукового потока.

Помимо фреймов, в файле могут быть один или несколько ID3 тегов. ID3 – это теги специально разработанные для формата MP3, т.к. он сам не содержит никакой описательной части. Теги бывают разных версий, чаще всего это или ID3v1.x или ID3v2.x. Теги первой версии находятся в последних 128 байтах файла, начинаются с символов TAG (такой тег может занимать и более чем 128 байт, но это редко, это усовершенствованная первая версия ID3). Теги второй версии могут находиться в любой части файла, но чаще они располагаются в начале файла, и начинаются с символов ID3. Теги второй версии намного более расширенные, чем теги первой версии, в них нет ограничений на длину полей с описанием трека, количество доступных полей намного больше, можно использовать Юникод, тег может содержать в себе изображение. Длина тега второй версии не фиксированная, и определяется по заголовку тега (в отличие от MP3 файла, у ID3v2 тега есть заголовок). Наличие тегов в файле не является обязательным, и их может не быть совсем, а могут быть оба, и тег первой версии в конце файла, и второй в начале, это делается в целях совместимости с большим количеством плееров. Часто возникает проблема с русскими символами в тегах в плеерах мобильных телефонах, я думаю это связано с Java машиной в телефоне, дело в том, что она поддерживает строки в формате UTF-8, а русские теги часто имеют кодировку Win-1251. Чтобы избежать «козябриков» на этих устройствах, нужно сохранять теги в Юникоде.

Теперь немного о том, как читать теги программно. Я не буду подробно освещать эту тему здесь, скажу лишь, что существуют библиотеки, компоненты для их чтения, также в сети доступна спецификация на эти теги, так что можно и самому написать их обработку, если есть желание. Звуковые движки, например тот же BASS, тоже умеют читать теги. Они кстати умеют и все остальное, о чем я буду писать ниже, и если ваша задача – получить информацию о файле, и вам не интересно как он устроен, можете в принципе дальше не читать, так как через интерфейс движка это сделать намного легче. Если вам звук нужно еще и воспроизводить, то этот способ даже лучше, зачем ковыряться в спецификациях, если есть удобный инструмент. Но бывают случаи, когда звук воспроизводить не надо, а нужна только информация о файле, и тогда лучше подключить легкий модуль, чем таскать движок за программой.

Битрейт

В этой статье я затрону только те характеристики, которые мы будем читать из файла, остальную общую информацию об MP3 можно без проблем найти в Интернете, ее достаточно, в отличие от более специализированной информации о формате.

Как вы все, наверное, знаете, MP3 файл может иметь различный битрейт, это кол-во бит выделенных на кодирование звука в единицу времени. Понятно, что чем он выше, тем качество звука лучше, и размер файла соответственно тоже больше. Значение битрейта в MP3 может находиться в пределах от 8 до 320 кбит/с. Полный список смотрите в Рис 2. Битрейт может быть постоянным (constant) и переменным (variable), это обозначается аббревиатурами CBR и VBR соответственно. Переменный битрейт позволяет снизить размер файла, не снижая качества. Это достигается за счет того, что на участках, где это не требуется, например тишина в начале трека, используется меньшее количество бит для кодирования. На уровне структуры файла это выражается в том, что один фрейм может иметь битрейт, например 128, а следующий может иметь уже 192, и т.д. В каждом отдельном фрейме битрейт имеет значение кратное степени двойки, соответствующее спецификации (см. рисунок 2). В целом по файлу, битрейт, в случае если он постоянный, не будет отличаться от значения битрейта первого фрейма, таким образом, нам достаточно взять информацию из первого фрейма, и мы имеем информацию о файле. В случае если битрейт переменный, то все усложняется, нам недостаточно одного фрейма, чтобы делать выводы об общем битрейте файла.

Частота дискретизации

Вторая характеристика, которую мы рассмотрим, это частота дискретизации или Sample Rate. Это частота, с которой при кодировании звука снимаются замеры с источника звука. Например, если частота у нас 44100 Гц, то это значит, что столько раз в секунду снимаются и сохраняются значения оригинального, аналогового звука. По сути, оцифровка. Можно конечно и уже оцифрованный звук перегнать с другим сэмпл-рейтом, но качество можно только понизить, повысить уже вряд ли удастся. Как и в случае с битрейтом, от частоты дискретизации напрямую зависит качество звука. Частота дискретизации в MP3 не может варьироваться, и всегда постоянна для всего файла.

Длина

У любой музыкальной композиции или любой другой звуковой записи есть такая характеристика, как длина. Упоминаю я ее отдельно для того, чтобы обрадовать вас, что так как у MP3 файла общего заголовка нет, то и готовые сведения о длине нам взять в принципе неоткуда (ID3 тег не в счет, в нем может быть длина трека, а может и не быть, а может и самого тега не быть). Поэтому длину нам придется высчитывать самостоятельно. На этом с характеристиками закончим и перейдем к разбору фреймов.

Фреймы

Самый значимый для нас это 3-й байт заголовка. В нем содержится информация о битрейте, частоте дискретизации, установлен или нет Pad бит (определяет наличие добавочного байта в фрейме), все это вместе взятое позволяет нам высчитать размер этого фрейма. Размер фрейма высчитывается по формуле 1:

144 * BitRate / SampleRate + Pad; (1)


рисунок 7

Если Pad бит равен единице то и в формулу подставляем единицу, если нулю – подставляем нуль. Битрейт и частоту подставляем в их полном виде, без округлений, битрейт в битах, а частоту в герцах. В файлах к этой статье вы найдете пример извлечения нужной информации из заголовка фрейма и реализацию этой формулы на языке Delphi. Чтобы что-то извлечь из заголовка, его нужно сначала найти, это тоже там есть. На самом деле достаточно найти первый фрейм, позицию каждого следующего мы уже будем знать, прибавляя к позиции текущего фрейма его длину.

Теперь поговорим о том, как найти переменный битрейт и длину трека. С постоянным битрейтом все ясно, он одинаковый для всего файла, и его можно взять из первого фрейма. С переменным не так. Во-первых, нигде не написано что он переменный, и чтобы это определить, нужно прочесть больше чем один фрейм. Я пошел самым простым путем, и читаю два первых фрейма. Если битрейт у них одинаковый я считаю что битрейт постоянный, если разный то переменный. Это скорее всего не точно, ведь переменным он может стать и после второго фрейма. Однозначных рекомендаций по этому вопросу я не встречал, возможно, есть соглашение, что если битрейт переменный, обязательно кодировать первые два фрейма с различным битрейтом, я бы так и сделал на месте разработчиков, но это только мои предположения. Если у вас есть более точная информация на этот счет, оставляйте комментарии к статье на сайте журнала, интересно будет почитать. Понятно, что в случае переменного битрейта необходимо как-то высчитать его среднее значение по всем фреймам. Оставлю это вам, у меня в коде в этом месте стоит заглушка, т.е. просто в случае переменного битрейта, в качестве его значения присваивается ноль.

Заключение

Теперь про длину трека. Ее можно высчитать, поделив размер файла (за вычетом тегов и прочего мусора, нужны только фреймы, не совсем ясно только, включать заголовки или нет) на битрейт, если он постоянный. Таким образом, мы получим длину трека в секундах. Если битрейт переменный, этот способ не подходит (хотя можно на усредненный битрейт поделить), тогда мы можем задействовать сэмпл-рейт, он у нас постоянный для всего файла, и представляет собой кол-во сэмплов в секунду. Если предположить что сэмпл и фрейм это одно и то же, то можно узнать количество секунд в треке, посчитав все фреймы. Я не пробовал ни тот, ни другой способ, не буду портить вам удовольствие и позволю самим попробовать высчитать длину трека. Если что интересное получится, пишите в комментариях. Опять же, можно переменный битрейт считать от обратного, найти по сэмпл- рейту длину, и потом уже одним действием найти средний битрейт.

Все исходные коды, упомянутые в статье, приложены непосредственно к журналу «ПРОграммист. Пятый выпуск».

Формат mp3, что это такое? В статье расскажем подробно об этом формате. Кроме того, разберем вопрос, как создавать файл mp3 и с ним работать. С помощью этой информации начинающие пользователи будут знать, какой формат использовать для работы с аудио.

Формат mp3, что это такое, где используется

Формат mp3, что это такое

Здравствуйте, друзья! Многие пользователи ПК знают, что есть такой формат, как mp3, но не все понимают, что он обозначает. Сегодня мы ответим на вопрос, формат mp3, что это такое.

Итак, форматом mp3 называют цифровой формат, который хранит аудио-файлы. Его разработали программисты MPEG в 1993 году. Простыми словами, mp3 относят к кодекам, которые выполняют задачу цифрового кодирования. Они воспроизводят и передают аудио-информацию (скрин 1).

формат mp3

Формат mp3 используется для воспроизведения музыки на Андроид, компьютере или других устройствах. Вместе с тем, аудио файлы в этом формате загружают в социальные сети, на сайты в Интернете, записывают речь в mp3 формате, используют в музыке.

Далее рассмотрим характеристики формата mp3 и виды. Также разберем, какие программы работают с данным форматом.

Характеристики формата(файла) mp3

В этом разделе будут показаны технические характеристики формата mp3. С помощью характеристик вы сможете определить, какой формат для аудио-файлов лучше использовать:

Теперь, вы знаете, какие имеет основные характеристики формат mp3.

Виды и типы аудио форматов

Кратко сделаем обзор на виды аудио форматов. Они разделены на три типа:

  1. Аудио форматы без сжатия. К ним можно отнести следующие виды форматов: WAV, AIFF, PCM.
  2. Сжатые форматы без потерь – это FLAC, ALAC, WMA Lossless.
  3. Сжатые аудио-форматы с потерями: формат mp3, AAC, OGG, WMA и другие форматы.

Перечисленные форматы отлично подойдут для работы со звуком и медиа-файлами.

Битрейт, что это такое? Это нужно знать для работы с аудио форматами

Важно знать, битрейт, что это такое? Давайте рассмотрим подробно понятие, чтобы понять значимость битрейта в работе с аудио форматами.

Итак, битрейт – это количество бит, которые используются для обработки и передачи информации в единицу времени. Проще говоря, битрейтом можно назвать скорость потокового воспроизведения аудио-файла.

Битрейт принято разделять на три вида: Постоянный – когда значение битрейта не меняется, Переменный – число битрейта может меняться в зависимости от пользовательских настроек, Усредненный – когда сочетаются первые два вида битрейта.

Стандартные значения битрейта следующие – «32 kbps-1411 kbps». Показатель битрейта можно увидеть в свойствах аудио файла (скрин 2).

битрейт что это

Далее будут рассмотрены программы, которые работают с аудио-форматом mp3.

Программы для mp3

Если вам нужно открыть аудио файл в формате mp3, для этого есть специальные программы (скрин 3).

аудио формат

Они работают в качестве аудио-плееров. Некоторые программы не нужно устанавливать на ваши устройства – они уже установлены. Чтобы открыть формат mp3, достаточно запустить аудио-файлы в нужном проигрывателе. Далее по инструкции это сделаем.

Программы для работы с mp3 на компьютере с ОС Windows

Для работы с mp3 форматом можно использовать бесплатные программы:

  • Media Player Classic (MPC);
  • Windows Media Player;
  • GOM Audio;
  • Winamp Lite;
  • TRAKTOR DJ Player; , которая записывает звук в MP3

Итак, чтобы открыть mp3 на компьютере или ноутбуке, воспользуемся программой Windows Media Player. Приготовьте заранее аудио-файл в формате mp3 на рабочем столе компьютера. Далее нажмите по данному файлу правой кнопкой компьютерной мыши и из меню кликните кнопку «Воспроизвести» (скрин 4).

как открыть музыку

После этого аудио файл формата mp3 будет открыт для воспроизведения. Если у вас установлены другие проигрыватели для аудио файлов mp3, то нажмите по файлу правой кнопкой мыши далее «Открыть с помощью». Затем выберите программу, которая воспроизведет аудио-файл в этом формате.

Программы для работы с mp3 на компьютере с ОС Mac

Для операционной системы Mac есть специальные аудио-программы, которые работают с mp3 файлами:

  • FL Studio Mac;
  • GarageBand Mac;
  • Soundflower;
  • Aiseesoft Mac Blu-ray Player 6.5.20;
  • Tipard Blu-ray Player for Mac 6.2.16;
  • Macgo Mac Blu-ray Player 3.3.20.

Формат mp3, что это такое для телефона? Работа на Андроиде и iOS

Для Андроид и iOS есть приложения, которые воспроизводят аудио файлы в mp3. Если вы работаете с телефона с ОС Андроид, то в таком случае можете скачать и установить с Плей Маркета следующие приложения:

  • AIMP;
  • Google Play Музыка;
  • PowerAMP;
  • Music Player Pro;
  • и другие приложения.

Практически все Андроид оснащены встроенным проигрывателем. Можно скачать музыку, например, из ВК и сразу ее воспроизвести на телефоне в формате mp3.

Некоторые пользователи работают с операционной системой iOS и слушают музыку в формате mp3. Чтобы успешно открыть этот формат файлов в данной OC, можете воспользоваться приложениями:

  • Vox Music Player;
  • Radsone Hi-Res Player;
  • Flacbox;
  • jetAudio;
  • Onkyo HF Player.

Конечно, это еще не все программы, которые работают с форматом mp3 на iOS. Остальные вы можете скачать с магазина АппСторе.

Как создать файл mp3, простые шаги

Создать файл mp3 вам поможет любая программа для записи звука. Практически на каждом компьютере есть приложение, которое записывает звук, либо установите другую программу. Чтобы активировать приложение записи голоса, наберите в поиске Windows: «Запись голоса».

Далее нажмите по программе. Затем подключите к компьютеру микрофон. Кликните на значок записи и запишите с помощью приложения свой голос (скрин 5).

как создать mp3 файл

После чего остановите запись и найдете в разделе «Документы», далее «Аудио-записи» файл в формате mp3.

Чем конвертировать формат mp3 в ogg, wav и другие форматы и наоборот

При необходимости, пользователи конвертируют формат mp3 в другие форматы. Сделать это можно с помощью онлайн-конвертеров или программ. В статье: «Бесплатный конвертер видео в видео — Video to video converter» рассказывается о бесплатном конвертере, который конвертирует разные форматы. Вы можете его применить.

Принцип работы сервисов и программ конвертеров простой. Загружаете в них аудио файл в формате mp3 далее выбираете, например, формат wav и нажимаете Конвертировать. После этого на компьютер скачиваете обработанный файл с другим форматом.

Кроме того, вы можете загрузить в этот конвертер, например, формат WAV и перевести его обратно в формат mp3.

Заключение

В статье рассмотрен вопрос, формат mp3, что это такое. Кроме того мы рассмотрели характеристики формата, какие программы запускают файлы mp3. Использование данного формата даст вам много преимуществ: вы сможете не только слушать музыку в этом формате, но и создавать аудио-файлы, редактировать.

Читайте также: