【问题标题】:SoX Not Reading WavSoX 不读取 Wav
【发布时间】:2018-11-09 07:56:28
【问题描述】:

我有一个大型 (5Gb) WAV 64 文件,我正在尝试使用 SoX 进行分析。在做;

sox /file/ -n 统计数据

它告诉我;

sox FAIL 格式:无法打开输入文件 '/file/': WAVE: RIFF header not found

在尝试指定时;

sox /file/ -t w64 -n stats

它说;

sox 警告 sox:忽略 `-t w64'。

并继续抛出与以前相同的错误。这个文件是 W64。如何说服 SoX 接受它?

【问题讨论】:

  • 它可能是一个原始文件。不是wav 文件!
  • 为什么你有/file/ 而不是./file 之类的东西?

标签: audio sox


【解决方案1】:

看起来 ffmpeg 可以处理 wav64 文件

您是否尝试过创建自己的微型 wav64 文件并查看是否可以读取?

看起来 wav64 是针对多声道音频的,这是您的用例吗? WAV 格式本身非常简单,允许人们编写两页代码来读取任何 wav 文件……如果您用尽所有其他选项并且您的生活依赖于读取文件、阅读 wav64 上的 ISO 规范或类似文件格式化然后编写自己的阅读器是一种选择。

您能分享一下您的 wav64 文件是如何创建的吗?也许我们中的一个人可以复制它的创造,并争取如何读回它

如果它没有充满大量多声道音频,是否将其转换为普通 wav 选项?

【讨论】:

  • 这是从 SACD 转换多声道 DSD 文件的 WAV 格式。由于它大于 4Gb,我不能使用标准 WAV。我会尝试看看是否可以解决它;还有其他方法可以处理不需要 SoX 阅读的源材料。只是我相信它是 WAV64,因为输出它的可信赖程序说它是,所以我不知道为什么即使我告诉 SoX 也拒绝接受。
【解决方案2】:

也许,您的wave64 文件无效。一个有效的应该包含一个riff 标头。
您在文件名后添加了-t w64 标志。这就是它被忽略的原因。

# This would work!  [CHECKED]
# If your file is valid!
sox -t w64 in_file -n stats

【讨论】:

  • 我测试了你的方法,但不适用于最新版本的 sox:sox FAIL formats: no handler for given file type "w64"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-05
  • 2011-05-30
  • 1970-01-01
  • 1970-01-01
  • 2011-05-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多