何时使用Wave可扩展格式



我正在编写一个音频库,其中包括读写波文件,我了解三种可能的波文件格式之间的差异,但是在处理单声道或立体声PCM数据时不清楚何时使用可扩展格式。我一直使用这个作为我的主要参考,它澄清了何时使用可扩展格式的明显情况。然而,链接提到,如果PCM数据大于16位,应该使用可扩展格式,但是当我尝试使用Audacity导出24或32位音频时,他们不使用可扩展格式。

我没有发现规范中提到在这种情况下应该使用可扩展格式,或者是否所有文件都应该使用可扩展格式。现代的库会支持旧的格式吗?我是否应该将文件写入简化为在所有情况下使用可扩展格式?

更新:

我从微软找到了这个关于格式块的资源。据我所知,PCM数据可以使用可扩展格式或18字节格式,但旧的16字节格式已经过时了。有人知道你是否可以在Windows机器上播放16字节头的WAVE PCM文件吗?带16字节报头的24位PCM怎么样?这是我在网上找到的另一个边缘案例。我没有Windows映像,所以我不能自己检查

它本来在MSDN上,但是被移动了或者消失了,现在留下的trace是:

根据MSDN文档"任何超过2个的PCM格式通道,每个采样超过16位,或超过44,100个采样必须用WAVEFORMATEXTENSIBLE "

来描述。

根据http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html

 "The WAVE_FORMAT_EXTENSIBLE format should be used whenever:
    1) PCM data has more than 16 bits/sample.
    2) The number of channels is more than 2.
    3) The actual number of bits/sample is not equal to the container size.
    4) The mapping from channels to speakers needs to be specified."

您可以指定24或32位的普通wav格式-如Audacity所示。可扩展格式更适合处理多个(多于2个)通道。根据我的经验,WAV格式比可扩展版本得到更广泛的支持。考虑到你正在处理单声道和立体声,我建议你坚持使用WAV。

我会使用16位PCM,然后将采样率更改为48000 Hz,小端和2声道立体声,以获得最干净的结果,因为大多数cd是44100 Hz,更改为48000 Hz可以用于更高质量的目的,而不是消费者质量音频(商业音频)。这是最干净的选项。

最新更新