WAV文件介绍

WAV文件介绍

WAV文件,全名为Waveform Audio File Format,是一种音频文件格式,由微软公司和IBM公司共同开发。WAV文件格式是在Windows系统中用于存储音频流的一种原始无损音频格式。由于其优秀的音质,WAV格式广泛应用于音乐制作和广播电视领域。

以下是关于WAV文件的一些重要属性:

  1. 无压缩或低压缩:在这里插入图片描述
    WAV文件通常是无压缩的,也就是说,它们包含原始音频数据,没有经过任何压缩处理。这使得WAV文件的音质非常好,但文件也会相对较大。有些WAV文件可能会用一些压缩算法进行压缩,但即使这样,其压缩比也较低,不会像MP3、AAC等会大幅度降低音质。
  2. 高质量:由于WAV文件通常是无损的,因此它提供了非常高的音质。这是音乐制作人员和专业音频质量要求者首选WAV格式的原因。
  3. 兼容性:WAV格式被广泛的硬件设备和软件应用支持,包括Windows操作系统、Mac OS操作系统以及许多多媒体播放器、编辑器等。
  4. 格式构成:WAV文件格式由文件头和数据块组成。文件头包含了文件的基本信息,如样本频率、位深度、声道数等;数据块即为存储的音频数据。

然而,由于WAV文件的大小通常较大,不适于网络传输和移动设备使用,所以它可能并不是所有情况下的首选格式。例如,对于在线音乐流、移动设备等,由于存储和带宽限制,通常会使用MP3等更高压缩比的格式。

WAV文件以RIFF(Resource Interchange File Format)的档案格式存储,包含文件头(header)和数据(data),如下所示:
在这里插入图片描述

WAV文件头由若干个Chunk组成,按照它们在文件中出现的位置,有WAVECHUNK、FMTCHUNK、FACTCHUNK和DATACHUNK,结构体表示如下所示:

//WaveForm struct

typedef struct {
char riff[4];// RIFF file identification (4 bytes) 
int length;// length field (4 bytes)
char wave[4];// WAVE chunk identification (4 bytes)
}WAVECHUNK;

typedef struct{
char fmt[4];// format sub-chunk identification (4 bytes) 
int flength;// length of format sub-chunk (4 byte integer) 
short format;// format specifier (2 byte integer)
short chans;// number of channels (2 byte integer) 
int sampsRate;// sample rate in Hz (4 byte integer) 
int bpsec;// bytes per second (4 byte integer)
short bpsample;// bytes per sample (2 byte integer)
short bpchan;// bits per channel (2 byte integer)
}FMTCHUNK;

typedef struct{
char szFactID[4];//'f','a','c','t’ 
int dwFactSize;//the value is 4
}FACTCHUNK;

typedef struct{
char data[4];// data sub-chunk identification (4 bytes) 
int dlength;// length of data sub-chunk (4 byte integer)
}DATACHUNK;

ta sub-chunk (4 byte integer)
}DATACHUNK;

在这之中,FACTCHUNK是可选的,如果不包含它,则整个头部占用44字节。用Microsoft PCM格式保存的WAV文件,会带FACTCHUNK头部,因此其头部有44+8=52字节。DATACHUNK的成员变量dlength表示数据的长度,如果是16位编码文件,将每个采样点表示成一个短整型(short)数据,则数据长度即为短整型数据的个数。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值