写在前面
最近正在学习并整理音视频相关材料,我习惯性的把最近学到的东西分享出来。如果大家感兴趣,可以订阅我的专题 视频播放器和音视频基础知识。
正文
MP3方面的资料网上现有的都大同小异,我是参考了一篇网上的博客。原文地址是:原文在这里,感谢博主的博客。
MP3音频帧
一个MPEG音频文件是由很多帧数据组成。每一帧包含了一个帧头以及其后的音频数据。同一个文件每一帧的音频数据的采样次数总是相同的。Layer II,II,III的音频帧头都是相同的,不同之处体现在音频数据的编码方式。帧本身是由slot组成的。Layer I的slot大小是4字节,其余情况是1字节。
除了Layer之外,MPEG音频本身也有3个版本,这个几个版本的不同之处体现在能处理的采样率不同(参考 表2.1.2)。MPEG 1 (ISO/IEC 13818-3) 和MPEG**2**(ISO/IEC 1117**2**-3)是ISO标准. MPEG**2**.5对MPEG**2**进行的非官方的扩展,它是为了支持更低的采样率。MPEG**2**/2.5 也常被简称为LSF(Low SamplingFrequencies),既低采样率。每个版本的MPEG都有3种不同的Layer。如果你想知道关于MPEG音频文件的更多的技术细节,请参考规范说明。你可以在www.**MP**3-Tech.org找到规范说明和许多其他关于MPEG有用的信息。
一个文件可以被编码成恒定比特率(CBR)或可变比特率(VBR),这意味着每帧可以有不同的比特率。可变比特率的质量往往比恒定比特率编码的文件更高,因为他们可以在需要的地方使用更高的比特率。
MPEG音频帧头
帧头位于每帧的开始处,大小通常是32bits(若Protection bit为1,则还要帧头最后添加16bits的校验位),并具有以下格式。帧头中第0位是最高有效位(MSB)。在头位的0是最重要的一点完整的头(最高位)。请注意,位置是从零开始的,位置,长度和示例都是用位格式表示。
起始位置 | 大小 | 作用 | 示例 |
---|---|---|---|
0 | 11 | 帧同步标识,11个‘1’。用于定位帧头起始位置 | 11111111111 |
11 | 2 | MPEG音频版本 ID: 00:MPEG version2.5 01:reserved 10:MPEG Version 2 11:MPEG Version 1 |
01 |
13 | 2 | Layer 序列号: 00 - reserved 01 - Layer III 10 - Layer II 11 - Layer I |
01 |
15 | 1 | Protection bit: 0 - protected by 16 bit CRC following header 1 - no CRC |
1 |
16 | 4 | 比特率索引 | 1001 |
20 | 2 | 采样率索引 | 11 |
22 | 1 | Padding bit: 如果设置了,则用一个slot填充数据(slot对框架大小的计算很重要) Layer I的slot大小是4字节,其余情况是1字节。 |
1 |
23 | 1 | 保护位 | 1 |
24< |