将提示数据写入 RF64 WAV 文件

Writing Cue Data into RF64 WAV File

提问人:Mr. Tea 提问时间:11/16/2023 最后编辑:Mr. Tea 更新时间:11/17/2023 访问量:39

问:

我不完全确定 StackOverflow 是否是这个问题的正确站点,但我查看了 StackExchange 网络中的所有其他站点,似乎没有一个更合适,所以如果这不是一个 StackOverflowy 足够多的问题,我们深表歉意。

无论如何,我正在努力制作一个非常基本的 WAV 文件编写器。除了播放所需的通常元数据外,我还需要能够在文件中的任意点添加提示,但是我在处理超过 4GB 的文件时遇到了麻烦。我知道有多种方法可以获取更大的 WAV 文件,但我想采取的方法是使用 RF64 WAV 文件格式。我在使用提示结构时遇到了麻烦,因为这些结构当然使用 32 位采样位置偏移,将提示标记限制在前 ~40 亿个样本中,而不是之后。

有谁知道我怎样才能做到这一点?

编辑:我将样本偏移量与数据混淆了。cue chunk 使用采样偏移来定位提示点,这可能允许在超过 4GB 的文件中使用它而不进行修改(例如,文件中有多个通道)。对于包含超过 40 亿个样本的文件,问题仍然存在。我知道这是一个很高的门槛,但如果没有必要,我也不想对音频长度施加限制。

音频 WAV 文件格式

评论

2赞 fdcpp 11/16/2023
Audition 可能以广播扩展 WAV 格式导出。建议的扩展是,但程序使用 .检查标题中是否显示。.bwf.wavbext
1赞 fdcpp 11/16/2023
抱歉,也应该把这一点说清楚。Rf54 和广播扩展 wav 部分设计用于克服 4GB 限制。如果您达到 4GB 的限制,那么可悲的是,您对标准的实现似乎并不完全正确。阅读标准以仔细检查您的实施情况
0赞 Mr. Tea 11/17/2023
问题是我不确定如何正确处理提示块中的采样偏移字段,并不是说我不能存储超过 4GB 的音频数据。我查看了 Audition 生成的 WAV 文件的二进制文件,我可以确认它不是使用 BWF 而是使用 RF64。但是,我确实发现 Audition 将他们的提示块卡在文件末尾的 XML 标记中——这是一个标准的 WAV 提示块,这很好,因为样本不到 40 亿个(有多个通道)。我需要获取一个包含超过 40 亿个样本的文件,看看会发生什么......
0赞 fdcpp 11/17/2023
上面链接的标准的第 2.4 节应该可以满足您的需求
0赞 fdcpp 11/17/2023
为了更深入地了解,可能值得包括一个简单的程序,该程序生成一个虚拟的wav文件,然后尝试解析它。这将使社区能够更多地了解您正在做的事情以及您可能偏离标准的地方的底层逻辑。

答: 暂无答案