【音频处理】WAV 文件格式分析 ( 逐个字节解析文件头 | 相关字段的计算公式 )
一、WAV 文件格式
这是纯 PCM 样本的二进制内容 : 开始的部分都是 00 00 00 方便阅读 ;
这是使用 Adobe Audition 将上述 PCM 音频数据转为 WAV 格式后的音频数据二进制信息 :
WAV 文件格式分析 : WAV 文件是在 PCM 纯音频样本数据的基础上添加了 44 44 44 字节的文件头 ;
52 49 46 46 A8 BD 1F 00 57 41 56 45 66 6D 74 20 12 00 00 00 01 00 02 00 80 BB 00 00 00 EE 02 00 04 00 10 00 00 00 64 61 74 61 00 A8
- 1
00 00 00 ~ 03 03 03 : 资源交换文件标志 ( RIFF ) , 52 49 46 46 , 固定写法 ;
04 04 04 ~ 07 07 07 : 从下个地址 ( 08 08 08 ) 开始到 WAV 文件结尾的总字节数 , A8 BD 1F 00 , 整个 WAV 文件的大小就是该数值 + 8 ;
整个 WAV 文件大小是 2,080,176 字节 ,
A8 BD 1F 00 使用十进制表示是 2,080,168 字节 ,
二者正好差了 8 8 8 字节 ;
该 int 字节计算公式 : P C M 音 频 样 本 总 字 节 数 + 44 − 8 \rm PCM 音频样本总字节数 + 44 - 8 PCM音频样本总字节数+44−8
08 08 08 ~ 11 11 11 : WAVE 文件标志 , 57 41 56 45 , 是 WAVE 四个字母的 ASCII 码 , 固定写法 ;
12 12 12 ~ 15 15 15 : 波形格式标志 , 66 6D 74 20 , 一般都是 fmt , 其中 0x20 对应的字符是空格 ;
16 16 16 ~ 19 19 19 : 过渡字节 , 12 00 00 00 , 不确定 , 有的时候是 10 00 00 00 ;
20 20 20 ~ 21 21 21 : 格式种类 , 01 00 , 1 时表示线性 PCM 编码 ;
22 22 22 ~ 23 23 23 : 通道数 , 02 00 , 1 表示单声道 , 2 表示立体声 ;
22 22 22 ~ 23 23 23 : 通道数 , 02 00 , 1 表示单声道 , 2 表示立体声 ;
24 24 24 ~ 27 27 27 : 采样频率 , 80 BB 00 00 , 48000 Hz ;
28 28 28 ~ 31 31 31 : 波形数据传输速率 , 即每秒中的字节数 , 00 EE 02 00 , 每秒传输 192000 字节 ;
计算公式 :
采 样 率 × 通 道 数 × 采 样 位 数 8 = 48000 × 2 × 16 8 = 192000 \cfrac{采样率 \times 通道数 \times 采样位数}{8} = \cfrac{48000 \times 2 \times 16}{8} = 192000 8采样率×通道数×采样位数=848000×2×16=192000
采样位数是 16 16 16 位 , 1 1 1 字节 8 8 8 位 , 16 16 16 位是 2 2 2 字节 , 即每个采样 2 2 2 字节 ;
32 32 32 ~ 33 33 33 : 数据块调整长度 , 04 00 , 4 字节 ;
计算公式如下 : 通 道 数 × 样 本 数 据 位 数 8 = 2 × 16 8 = 4 \cfrac{通道数 \times 样本数据位数}{8} = \cfrac{2 \times 16}{8} = 4 8通道数×样本数据位数=82×16=4
34 34 34 ~ 35 35 35 : 每个样本的数据位数 , 10 00 , 16 位 , 2 2 2 字节 ;
36 36 36 ~ 39 39 39 : 数据标记 , 64 61 74 61 , data 的 ASCII 码值 ;
这里注意该 WAV 文件在 36 ~ 37 位置插入了两个无意义的 00 字节 , 目前不清楚含义 , 暂时不用管 ;
40 40 40 ~ 43 43 43 : PCM 数据总长度, 单位 字节 , 00 A8 1F 00 , PCM 数据总长度为 2,074,624 字节 ;
文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。
原文链接:hanshuliang.blog.csdn.net/article/details/117351966
- 点赞
- 收藏
- 关注作者
评论(0)