目录
WAV格式文件概述
关于RIFF文件格式
WAV文件内部结构
WAV格式文件具体实例分析
1.RIFF标头部分
2.fmt部分
3.data部分
问题
WAV格式文件概述
Waveform Audio Format(WAVE,又或者是因为.wav后缀而被大众所知的),它采用RIFF(Resource Interchange File Format)文件格式结构。通常用来保存PCM格式的原始音频数据,所以通常被称为无损音频。但是严格意义上来讲,wav也可以存储其它压缩格式的音频数据。
关于RIFF文件格式
构成RIFF文件的基本单位称之为块(chunk)。每个RIFF文档是由若干个块构成。每个块(chunk)由块标识、块长度及数据等三部分所组成。WAV文件内部结构
(1)RIFF标头
(2)fmt子块——描述声音数据的格式
(3)data子块——描述数据的大小和实际的声音数据
注:data字段不一定是从36字节开始,data之前可能还会有拓展字段
WAV格式文件具体实例分析
以下列wav文件为例进行分析:
用二进制编辑器打开该文件:
1.RIFF标头部分
(1)第1-4字节:52 49 46 46 表示"RIFF”的ACSII字符,表明该文件为有效的 RIFF 格式文档
(2)第5-8字节:A6 88 E5 00 说明这个文件的数据大小,根据低位在前高位在后的原则,这串数据为0xE588A6,说明该文件大小为15042726+8=15042734字节。
打开文件属性可以验证:
(3) 第9-12字节:57 41 56 45 表示"WAV”的ACSII字符,表明该文件是 WAV 格式文件
2.fmt部分
(1)第13-16字节:66 6D 74 20 表示“fmt”的ASCII字符,是固定的
(2)第17-20字节:10 00 00 00 表示格式块长度,这串数据为0x00000010,表示块长度为16
(3)第21-22字节:01 00 这是一个WORD,表示编码格式为PCM
(4)第23-24字节:02 00 这是一个WORD,表示此文件为双声道文件
(5)第25-28字节:44 AC 00 00 表示采样频率,这串数据为0xAC44,表示采样频率为44100
(6)第29-32字节:10 B1 02 00 表示每秒数据量,这串数据为0x2B110,表示音频数据传送速率为176400,可以根据公式计算:SampleRate× NumChannels×BitsPerSample(根据后面可知为16)/8 = 44100×2×16/8=176400
(7)第33-34字节: 04 00 表示采样帧大小,这串数据为0x04,十进制数为4,也可以根据公式计算:NumChannels × BitsPerSample/8 = 2 × 16/8 = 4
(8)第35-36字节:10 00 表示每样本的数据位数,即16bit
3.data部分
(1)64 61 74 61:表示“data”的ASCII字符
(2)60 88 E5 00:表示音频数据块的大小,但是不包含Subchunk2ID和Subchunk2Size所占字节,这串数据为0xE58860,即音频数据块大小为15042656字节,与前面的整个文件数据数据大小15042726字节相差70字节,表明data前的头文件占70字节
问题
本实例中data部分前fmt部分后有34字节的拓展字段,在查找资料的过程中,一般都没有这些拓展部分,这些拓展部分也不知道具体表示什么意思,期待读者们在评论区里跟小编讨论讨论^-^