首页 > 解决方案 > RIFF/Wav 标头中的“LIST”块是什么?

问题描述

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

如您所见,它期望:

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

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

在此处输入图像描述

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

标签: wavriff

解决方案


您的示例块包含一个包含创建软件 ( )LIST的ration:INFOISFT

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 容器来注释文件的所有可延展属性:样本、区域、关节等。其中任何一个都可能是二进制数据。

推荐阅读