wav格式

come from : https://blog.csdn.net/luckywang1103/article/details/45697245

RIFF概念
大部分多媒体文件都遵循一种结构来存放信息,这种结构称为”资源互换文件格式”(Resource Interchange File Format)简称RIFF。例如声音的wav文件,视频的avi文件等都是由此结构衍生出来的。 
RIFF基本结构如下:

块的标志 (4bytes)      数据大小 (4bytes)
数据                            数据大小记录后面跟随的数据的大小,所以总的文件的大小是”数据大小+8bytes”

wav文件格式
起始地址    占用空间    含义
00H    4 bytes    “RIFF”标志
04H    4 bytes    后面开始的文件的大小,真正的文件大小=这个值+0x08
08H    4 bytes    “wav”
0cH    4 bytes    “fmt”
10H    4 bytes    sizeof(PCM_WAV_FORMAT)数值为16或更大值,记录14H开始到”data”标志之间的数据的大小
14H    2 bytes    编码格式0x0001代表pcm
16H    2 bytes    channels,1-单声道,2-双声道
18H    4 bytes    sample rate
1cH    4 bytes    bits*sample rate*channels/8
20H    2 bytes    bits*channels/8
22H    2 bytes    bits
24H    4 bytes    “data”
28H    4 bytes    后面开始的语音数据的大小,真正的文件大小=这个值+0x2c
2cH    …    语音数据
以上说明:PCM_WAV_FORMAT是14H开始到”data”标志之间的一段数据。

先来分析一个wav文件 

è¿éåå¾çæè¿°

52 49 46 46: RIFF标志 
a6 17 02 00: 后面的文件大小,按照pc小端模式,应该是0x000217a6,真正的文件大小还要在此基础上加8 
57 41 56 45: WAVE标志 
66 6d 74 20: fmt标志 
10 00 00 00: 14H到”data”标志之间的数据大小,这里是0x00000010,16个字节 
+++++ 14H到data之间的数据 ++++ 
01 00: 编码格式,0x0001代表pcm编码 
01 00: channels,这里是单声道 
80 bb 00 00: sample rate 
00 77 01 00: bits*sample rate*channels/8 
02 00: bits*channels/8 
10 00: bits 
++++++++++++++++++++++ 
64 61 74 61: “data”标志 
82 17 02 00: “data”标志之后的语音数据大小,真正的文件大小在此基础上加0x2c

再来分析一个wav文件 

è¿éåå¾çæè¿°

52 49 46 46: RIFF标志 
3c 80 04 00: 后面的文件大小,按照pc小端模式,应该是0x000217a6,真正的文件大小还要在此基础上加0x08 
57 41 56 45: WAVE标志 
66 6d 74 20: fmt标志 
28 00 00 00: 14H到”data”标志之间的数据大小,这里是0x00000028,40个字节 
+++++ 14H到data之间的数据 ++++ 
FE FF: 编码格式 
02 00: channels 
80 bb 00 00: sample rate 
00 65 04 00: bits*sample rate*channels/8 
06 00: bits*channels/8 
18 00: bits 
03 00 00 00: 
…. 
00 38 9b 71 
++++++++++++++++++++++ 
64 61 74 61: “data”标志 
00 80 04 00: “data”标志之后的语音数据大小,真正的文件大小在此基础上加0x44

wav容器里面的音频数据
最基本的wav文件是PCM(脉冲编码调制)格式的。这种文件直接存储采样的声音数据没有经过任何压缩,是声卡支持的数据格式,要让声卡正确的播放其他被压缩的声音数据,就应该先把压缩的数据解压缩成PCM格式,然后再让声卡播放。 
另外,由于wav只是一种文件存储的容器,也可以存储压缩过的数据,如G.711数据等,播放时需要解码成pcm(脉冲编码调制)格式以便声卡能够播放。

对于单声道声音文件,采样深度为8 bit(00H~FFH)或16 bit 
对于双声道立体声音文件,采样深度为8 bit,则每次采样数据为16 bit,高8 bit(左声道)和低8 bit(右声道)分别代表两个声道;采样深度为16 bit类推。 
具体wav数据bit位置安排方式如下: 

è¿éåå¾çæè¿°


部分参考自:http://blog.csdn.net/zhihu008/article/details/7854529
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值