iOS AVAudioRecorder录制的wav音频文件头详解
最近在做音频采样功能,在处理 WAV 格式音频文件时发现,使用 AVAudioRecorder 在录制 kAudioFormatLinearPCM 音频格式输出的 WAV 文件时,添加的文件头并不是大家常见的 44 字节,而是 4096 字节。
下面以一个音频文件的内容文件作为示例,我通过逐个字节的解析,发现了多出的两个部分 JUNK 和 FLLR 。
- 文件内容详解
(00-04)5249 4646 //RIFF
(04-08)f8bf 0300 //文件size(小端)
(08-12)5741 5645 //WAVE
//此处开始为多出的“JUNK”片段
{
(12-16)4a55 4e4b //JUNK
(16-20)1c00 0000 //计数为28字节
(20-48)0000 0000 ... //此处省略字节内容(28byte)
}
(48-52)666d 7420 //fmt
(52-56)1000 0000 //过渡字节(不定)
(56-58)0100 //格式类别,为1时表示线性PCM编码,大于1时表示有压缩的编码。
(58-60)0200 //声道数,1为单声道,2为双声道
(60-64)44ac 0000 //采样率,采样频率,这里是44100
(64-68)10b1 0200 //位数,Byte率=采样频率*音频通道数*每次采样得到的样本位数/8,00005622H,也就是176400Byte/s=44100*2*16/8。
(68-70)0400 //一个采样多声道数据块大小,块对齐=通道数*每次采样得到的样本位数/8,也就是4=2*16/8
(70-72)1000 //一个采样占的bit数,样本数据位
//此处开始为多出的“