当前位置:编程学习 > 网站相关 >>

wav文件格式解析


偏移 所占字节 数据 备注
0 4 字符串"RIFF"
4 4 文件长度(不含本身和RIFF块),在不含附加信息的情况下即 音频数据长度+36
8 4 字符串"WAVE"
12 4 字符串"fmt "
16 4 format块大小 PCM格式一般取16(0x10),若取18则format块后有附加信息
20 2 音频编码格式 PCM编码取1 wFormatTag
22 2 声道数 单声道取1 多声道取2 nChannels
24 4 采样率(每秒样本数),如44100HZ nSamplesPerSec
28 4 音频数据传送速率,公式:采样率*每次采样大小 (即:SamplesPerSec*BlockAlign) nAvgBytesperSec
32 2 每次采样大小(单位:byte),公式:采样精度*声道数/8 (即:BitsPerSample*Channels/8) nBlockAlign
34 2 每个声道的采样精度(单位:bit),如8,16 wBitsPerSample
36 4 字符串"data"
40 4 音频数据的长度
44 * 实际音频数据

typedef struct
 {
     WORD  wFormatag;                    //编码格式,包括WAVE_FORMAT_PCM,WAVEFORMAT_ADPCM等
     WORD  nChannls;                       //声道数,单声道为1,双声道为2;
     DWORD  nSamplesPerSec;     //采样频率;
     DWORD  nAvgBytesperSec;   //每秒的数据量(即音频数据传送速率),SamplesPerSec*BlockAlign
     WORD  nBlockAlign;                 //块对齐,每次采样大小,BitsPerSample*Channels/8
     WORD  wBitsPerSample;       //每个声道的采样精度(单位:bit)
     WORD  cbSize;                        // The count in bytes of the size of extra
                                                         // information(after cbSize). PCM中忽略此值
  } WAVEFORMATEX;

存储量=(采样率*采样精度*声道)*时间/8(单位:字节数)


作者:jiangxueqiao
补充:综合编程 , 其他综合 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,