RIFF / Wav标头中的“ LIST”块是什么?

问题描述

我正在编写一个wav播放器,并且正在使用以下文件格式规范:http://soundfile.sapp.org/doc/WaveFormat/

如您所见,它期望:

  1. 初始的“ Riff Chunk”(告诉我们这是wav文件还是其他RIFF文件类型)
  2. 后跟“格式”块(告诉我们诸如比特率和通道数之类的信息)。
  3. 后跟一个“数据”块,其中包含所有音频数据。

我有一个音频文件,该文件在Format块和Data块之间有一个“ LIST”块,当我对文件进行十六进制编辑时,您可以在视觉上看到它:

enter image description here

这个LIST块是什么,它是某种标准化文件格式的一部分,并且在某处具有解析该文件的信息?

解决方法

您的示例块包含一个LIST版本的INFO版本,其中包括创建软件(ISFT):

类型LIST

INFO块在扩展RIFF的格式中很常见。当LIST块带有列表类型ID“ INFO”时,该列表包含有关版权,作者,文件工程师和其他类似文本的信息。
...
ISFT用于创建文件的软件包的名称

https://www.recordingblogs.com/wiki/list-chunk-of-a-wave-file

还有其他种类的列表,但是信息列表很常见。上面的网站非常详细地介绍了期望的内容,但简要介绍了:

  • LIST是基于RIFF的文件(如WAVE和JPEG)中定义明确的容器类型。
  • 并非每个文件都有一个LIST容器。
  • 并非每个LIST都包含相同类型的信息。例如,WAVE可以包括持续时间; JPEG尺寸; JPEG和WAVE可能都有作者。
  • DLS类型文件依靠LIST容器来注释文件的所有可延展属性:样本,区域,关节等,其中任何一个可能是 binary 数据。