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

Jos*_*uaD 6 wav riff

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

正如您所看到的,它期望:

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

我有一个音频文件,在格式块和数据块之间有一个“LIST”块,当我对文件进行十六进制编辑时,您可以直观地看到它:

在此输入图像描述

这个 LIST 块是什么?它是某种标准化文件格式的一部分吗?是否有地方提供有关解析它的信息?

bis*_*hop 6

您的示例块包含包含创建软件的信息 ( LIST) :INFOISFT

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

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

还有其他类型的列表,但信息列表很常见。上面的网站非常详细地介绍了预期的内容,但简而言之:

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