一.分析avi文件
AVI是一种RIFF文件格式。通常情况下,一个AVI文件可以包含多个不同类型的媒体流(通常有一个音频流和一个视频流)。
RIFF文件使用四字符码FOURCC来表征数据类型,比如"RIFF""AVI ""LIST"等。Windows操作系统使用的字节顺序为little-endian,因此一个四字符码"abcd"实际的DWORD值应为0x6463626。
RIFF AVI格式:
使用分析工具打开一个avi文件:
当AVI文件包含多个流的时候,数据块使用一个四字符码来表征它的类型,这个 四字符码由两个字节的类型码和两个字节的流编号组成。标准的类型码定义如下:"db"(非压缩视频帧)"dc"(压缩视频帧)"pc"(改用新的调色板)"wb"(音缩视频)。下图00dc,01wb交织分布,说明avi文件格式中视频和音频是交织分布的。一个视频帧占据120000字节,一个音频帧占用6404字节。
二.WAV文件分析
wav文件遵循RIFF规则,其内容以区块(chunk)为最小单位进行存储,wav文件一般由三个区块组成:RIFF chunk, format chunk和data chunk,另外还有可能包含其他的可选区块。
用分析工具打开一个wav文件:
1.RIFF区块
1-4字节“0x52494646”表示“RIFF”标识;5-8字节代表size,即整个文件的长度减去前8个字节;9-12字节“0x57415645”表示“wav”标识。
2.FORMAT区块
1-4字节为“fmt”标识,5-8字节为该区块数据的长度减去8字节,9-10字节代表音频格式,11-12字节代表声道数,13-16字节代表采样率,17-20字节代表每秒数据字节数,21-22字节为每个采样所需的字节数(等于bits per sample*声道数/8),23-24字节为每个采样存储的bit数。
本例中,format tag为“1”代表PCM音频数据,双声道,采样率为44.1khz,bit深度为16位。
3.DATA区块
1-4字节“0x64617461”为“data”标识,5-8字节为数据音频的长度(等于每秒数据字节数*秒数),之后的字节为音频数据。如果是单声道的话,采样点就是简单的顺序排列。如果是双声道的话,采样点就是左右声道交错排列。