博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WAV文件格式
阅读量:4572 次
发布时间:2019-06-08

本文共 2486 字,大约阅读时间需要 8 分钟。

作者:阿宝 

更新:2016-09-21 
来源:彩色世界() 

WAVE (Waveform Audio File Format),是由微软和IBM公司共同开发的音频编码格式;广泛应用于Windows平台;

又因为文件后缀名为.wav而被称为WAV。

官方文档

WAV文件格式

WAVE和AVI支持的编码格式

文件格式

由多个块组成,必须包含四种(分别为RIFF头块、格式块、数据头块、数据块),其中格式块必须在数据块前面,其他块可自定义并且允许被忽略。

所有数据均以小端方式存储。

OFFSET  LENGTH  VALUE   DESCRIPTION0       4 bytes 'RIFF'  The file format ID.4       4 bytes         Length of the file minus (-) 8 bytes.8       4 bytes 'WAVE'  The data format ID.12      4 bytes 'fmt '  The chunk ID.16      4 bytes 32      Length of the chunk excluding the 8                        bytes for the ID and length.20      4 bytes         The codec ID.24      4 bytes         The number of channels.28      8 bytes         Samples per second.36      8 bytes         Average bytes per second.44      4 bytes         Block alignment.48      4 bytes         Bits per sample.52      4 bytes 'data'  The chunk ID.56      4 bytes         Length of the data (chunk size minus (-) 8 bytes.60      4 bytes 'fact'  The chunk ID.        4 bytes  8      Chunk size minus (-) 8 bytes.        8 bytes         Sample length.

WAV文件示例

下面是一个由FFmpeg转码生成的WAV文件示例,PCM数据,大小5292078B,位宽16bit,小端存储,采样率44100,2声道,码率1411kb/s。

分析发现,真实的WAV文件格式与IETF中的描述并不一致,暂时还没找到原因。

在资源交换文件RIFF标准中,所有的数据被组织成"块"格式,每个块必须包含一个4字节的ID,一个4字节的长度字段,和若干字节的数据。

52 49 46 46 26 c0 50 00 57 41 56 45 66 6d 74 2010 00 00 00 01 00 02 00 44 ac 00 00 10 b1 02 0004 00 10 00 4c 49 53 54 1a 00 00 00 49 4e 46 4f49 53 46 54 0e 00 00 00 4c 61 76 66 35 36 2e 3430 2e 31 30 31 00 64 61 74 61 e0 bf 50 00 06 00...

0-4B 0x52 0x49 0x46 0x46 文件格式标识'RIFF'

5-8B 0x26 0xc0 0x50 0x00 文件长度减8,小端存储,此处为5292070
9-12B 0x57 0x41 0x56 0x45 数据格式标识'WAVE'

13-16B 0x66 0x6d 0x74 0x20 格式块标识'fmt '

17-20B 0x10 0x00 0x00 0x00 格式长度,此处为16
21-22B 0x01 0x00 数据编码格式 Microsoft PCM Format 0x0001
23-24B 0x02 0x00 音频声道数,此处为2,双声道
25-28B 0x44 0xac 0x00 0x00 音频采样率,此处为44100
29-32B 0x10 0xb1 0x02 0x00 平均码率
33-34B 0x04 0x00 数据的调整数?
35-36B 0x10 0x00 样本位宽,此处为16bit
37-40B 0x4c 0x49 0x53 0x54 块标识'LIST'
41-44B 0x1a 0x00 0x00 0x00 块长度,此处为26
45-70B 0x49 0x4e 0x46 0x4f 0x49 0x53 0x46 0x54 0x0e 0x00 0x00 0x00 0x4c 0x61 0x76 0x66 0x35 0x36 0x2e 0x34 0x30 0x2e 0x31 0x30 0x31 0x00
71-74B 0x64 0x61 0x74 0x61 数据头块标识'data'
75-78B 0xe0 0xbf 0x50 0x00 数据长度,不包括数据头,此处为5292000
...

音频数据

WAV编码不对源数据做任何压缩处理;

如果源数据是无损的,编码后的WAV文件也是无损的;
如果源数据是有损的,编码后的WAV文件也是有损的;

关于采样

通常情况下人耳只能感受到频率从100到20,000赫兹的信号;因此44,100赫兹的采样相对于人耳即是“无损”的。

音乐制作人通常会录制采为96,000赫兹的数据,之后采样处理成不同的格式。

常见的音频处理软件

剪辑 Goldwave

精细制作 MATLAB

转载于:https://www.cnblogs.com/shishuo365/p/5895351.html

你可能感兴趣的文章
TCHAR和CHAR类型的互转
查看>>
常用界面布局
查看>>
C语言—— for 循环
查看>>
IBM lotus9.0测试版即将公测
查看>>
xml常用方法
查看>>
Cube Stacking(并差集深度+结点个数)
查看>>
AndroidStudio3更改包名失败
查看>>
jq 删除数组中的元素
查看>>
js URL中文传参乱码
查看>>
Leetcode 367. Valid Perfect Square
查看>>
UVALive 3635 Pie(二分法)
查看>>
win系统查看自己电脑IP
查看>>
Backup&recovery备份和还原 mysql
查看>>
一道面试题及扩展
查看>>
Unity 3D 我来了
查看>>
setup elk with docker-compose
查看>>
C++ GUI Qt4学习笔记03
查看>>
Java基础回顾 —反射机制
查看>>
c# 前台js 调用后台代码
查看>>
2017-02-20 可编辑div中如何在光标位置添加内容
查看>>