Файл состоит из одного или нескольких фреймов.
Фрейм имеет заголовок и данные.
Длина фрейма определяется форматом MPEG, и может менятся.
Фрейм кончается там, где начинается следующий. (см. Заголовок фрейма)
Заголовк фрейма состоит из 4-ех байт, с которых начинается каждый фрейм. Заголовок у каждого фрейма может быть разным.
Байт 0 1 2 3 binary 11111111 111aabbc ddddeefg hhjjkmpp 1 - Синхронизация a - Версия b - Layer c - Защита от ошибок d - Код битрейта e - Код sample rate f - Padding g - Extension h - Каналы j - Mode extension k - Сopyright m - Original p - Emphasis
1 - Синхронизация.
Должен быть: 11111111 111xxxxx
a - Версия
0 = mpeg 2.5 2 = mpeg 2 3 = mpeg 1
b - Layer
3 = layer I 2 = layer II 1 = layer III
c - Защита от ошибок.
0 = on 1 = off
d - Код битрейта.
mpeg 1 (hex) layer I layer II layer III $0 0 0 0 $1 32 32 32 $2 64 48 40 $3 96 56 48 $4 128 64 56 $5 160 80 64 $6 192 96 80 $7 224 112 96 $8 256 128 112 $9 288 160 128 $a 320 192 160 $b 352 224 192 $c 384 256 224 $d 416 320 256 $e 448 384 320 mpeg 2, mpeg 2.5 (hex) layer I layer II layer III $0 0 0 0 $1 32 8 8 $2 48 16 16 $3 56 24 24 $4 64 32 32 $5 80 40 40 $6 96 48 48 $7 112 56 56 $8 128 64 64 $9 144 80 80 $a 160 96 96 $b 176 112 112 $c 192 128 128 $d 224 144 144 $e 256 160 160
e - Код sample rate.
mpeg 1 mpeg 2 mpeg 2.5 0 = 44100 Hz 22050 Hz 11025 Hz 1 = 48000 Hz 24000 Hz 12000 Hz 2 = 32000 Hz 16000 Hz 8000 Hz
f - Padding.
1 = unused bits are filled (padding required) 0 = all bits in frame are used
g - Extension.
0 = none 1 = private
h - Channel mode
0 = stereo 1 = joint stereo 2 = dual channel 3 = mono
j = Mode extension.
Только для Join-Stereo
layer I & II layer III 0 = 4 0 1 = 8 4 2 = 12 8 3 = 16 16
k - Copyright.
0 = no 1 = yes
m - Original.
0 = no 1 = yes
p - Emphasis.
0 = none 1 = 50/15 microseconds 2 = dunno 3 = CITT j.17