文章目录
AVI文件WAV文件概述文件结构1. RIFF WAVE块格式2. Format块格式3. Fact块格式4. Data块格式1) 8比特单声道2) 8比特双声道3) 16比特单声道4) 16比特双声道AVI文件
使用Atomic Browser 软件打开AVI文件,可以看出视频和音频的数据是交织放置的。
WAV文件概述
WAVE(Waveform Audio File Format),是录音时用的标准的Windows文件格式,文件的扩展名为“WAV”,数据本身的格式为PCM或压缩型。WAVE文件格式是一种由微软和IBM联合开发的用于音频数字存储的标准,它采用RIFF文件格式结构,非常接近于AIFF和IFF格式。符合 PIFF Resource Interchange File Format规范。WAVE文件可以存储大量格式的数据,通常采用的音频编码方式是脉冲编码调制(PCM)。WAVE对音频流的编码没有硬性规定,除了PCM之外,还有几乎所有支持ACM规范的编码都可以为WAV的音频流进行编码。由于 WAV格式源自Windows/Intel环境,因而采用Little-Endian字节顺序进行存储。
文件结构
WAV文件遵循RIFF规则,其内容以区块(chunk)为最小单位进行存储。RIFF格式的wav文件由若干个Chunk(块)组成,按顺序为 RIFF WAVE Chunk、Format Chunk、Fact Chunk(可选)和Data Chunk。每个块都有固定而且类似的格式。一般整个WAV文件可以分成两部分:前一部分为文件头,后一部分为数据块。根据其编码方式和采样位数的不同, 这两部分的大小有所不同。1. RIFF WAVE块格式
Wav 文件最开始 4 个字节是 ID 部分,其内容为 RIFF 的 ASCII码,紧跟的4个字节表示的文件大小是总文件字节数减去ID 和Size所占字节数的8 个字节。然后是 Type部分,其内容为WAVE的ASCII码,4个字节。 以上图为例:52 49 46 46 :表示RIFF文件格式,固定。
72 0d 0b 00 :表示WAV文件大小,为724338(0xb0d72)字节
(不包括ID 和Size所占字节数的8个字节)。
57 41 56 45 : 表示WAVE文件, 固定.
2. Format块格式
其中,ByteRate和Block可以由其他数据计算得出:ByteRate = SampleRate * NumChannels * BitsPerSample / 8
BlockAlign = NumChannels * BitsPerSample / 8 以上图为例:
66 6D 74 20 : “fmt ”, Format块标识
10 00 00 00 :表示Format块数据大小,为16字节。
01 00 :音频数据的编码类型标识,为PCM编码
01 00 :音频数据的声道数,为单声道
40 1F 00 00 :采样频率为8000Hz
80 3E 00 00 :数据传输速率为16000字节/s
02 00 : 数据块对齐单位,每个采样帧占据2字节
10 00 : 采样位数,每个采样值所用的二进制数位数为16
3. Fact块格式
4. Data块格式
对于Data块,根据声道数和采样率的不同情况,布局如下:
1) 8比特单声道
2) 8比特双声道
3) 16比特单声道
4) 16比特双声道
以上图为例
64 61 74 61 : “data”,数据块标识
4E 0D 0B 00 : data块数据长度,为724302字节
剩下的是数据部分