DSP

音频格式详解:WAV

2019-07-13 20:01发布

(1)音频格式:典型WAV

封装格式是每个音频文件必不可少的组成部分之一,它给我们提供了以下参考信息。音频文件类型、编解码方法、单双声道、采样深度、采样率、量化位数、音频文件大小、长度。下面首先来分析一下经典的wav音频的封装格式。个人精力有限不可能把每种音视频格式都一一解析,所以这里分别挑选了音频:Wav,视频Mp4两种多媒体文件格式介绍: 下面我们对每一个字段进行详细的分析。 整个音频文件包括三个主要部分: (1)    文件头描述字段 (2)    数据头字段 (3)    数据字段 (1)    文件头描述字段: 1.1 Chunk ID:“RIFF”标志位。占用4个字节。数据类型char,偏移地址0x00。存储方式:大端模式 我们任意打开一个wav音频文件:
利用十六进制到ASCII转换工具: 刚好是RIFF 1.2 Chunk Size:文件大小 。占用4个字节。数据类型long int,偏移地址0x04。存储方式:小端模式 首先要把大小端调整一下: 0035E024. 将其转换为十进制:3530788 总文件大小=3530788+4(RIFF4个字节)+4(Chunk Size) 4个字节。 总文件大小=3530796 Byte 我们对比一下: 1.3 Format:文件标志位。占用4个字节。数据类型char,偏移地址0x08。存储方式:大端模式。 对应的英文字母:WAVE (2)数据头字段 2.1 Subchunk1 ID:“FMT”标志位。占用4个字节。数据类型char,偏移地址0x0c。存储方式:大端模式。 2.2Subchunk1 Size:过渡字节。占用4个字节。数据类型int,偏移地址0x10。存储方式:小端模式。 2.3Audio Format:声音格式。占用2个字节。数据类型int,偏移地址0x14。存储方式:小端模式.

01表示pcm格式。当然,模拟信号转化为数字信号可以有不同的格式。比如常用的PCM、ACM、LAW 2.4Num Channels:声道个数。占用2个字节。数据类型int,偏移地址0x16。存储方式:小端模式。02 00 。对应的2个通道 2.5 Sample Rate:采样率。占用4个字节。数据类型int,偏移地址0x18。存储方式:小端模式. 0000AC44-》44100 采样速率。 2.6 Byte Rate:音频传输速率。占用4个字节。数据类型long int,偏移地址0x1c。存储方式:小端模式 音频传输速率:176000  176KB 其实这个根据上面的参数是能计算出来的。  音频传输速率(每秒传输的字节数)=采样率(每秒采样个数)*通道个数*每个采样点的字节数(每个采样点16位,占2个字节) 这个参数什么作用呢?它直接决定播放这种音频文件需要多大的带宽。 带宽:带宽指单位时间能通过链路的数据量。通常以bps来表示 所以,如果播放这个音频,大约需要 1.375M 带宽以上,才能直播音频。否则只能缓冲来播放了。实际上一般不用WAV,都用AAC等压缩率高的音频文件格式。 2.7 Block Align:数据块调整。占用2个字节。数据类型int,偏移地址0x20。存储方式:小端模式 2.8 Bits perSample:每个样本中数据位数。占用2个字节。数据类型int,偏移地址0x22。存储方式:小端模式 10 00这个是啥意思呢?通俗理解就是每个采样点所占的位数。这里是十六。说明44100的采样点,每个点是16个bit的。 (3)数据字段 3.1 Subchunk2 ID:“data”标识符。占用4个字节。数据类型char,偏移地址0x24。存储方式:大端模式 3.1 Subchunk2 Size:音频文件长度。占用4个字节。数据类型long int,偏移地址0x28。存储方式:小端模式 一个是文件长度,一个是音频数据长度。二者偏移地址分别是0x04 0x28 。刚好相差0x24个字节。 3.3 Date:为音频数据。长度等信息由具体音频文件决定。 这里可以把一些音频加密等信息放在这里。或者把音频加密的一些key放在音频文件头部。