1

我在将WAV文件转换为OGG使用oggenc. 我总是遇到这个异常

Warning: INVALID format chunk in wav header.
 Trying to read anyway (may not work)...
ERROR: Wav file is unsupported type (must be standard PCM
 or type 3 floating point PCM)
ERROR: Input file "x.wav" is not a supported format

我已经安装了所有依赖项,例如libflac, vorbis-tools, libvorbis.

这个问题正在我的一台生产服务器中发生。在本地和少数其他系统中使用相同的设置可以正常工作。我已经从生产中下载了相同的 wav 文件并在本地尝试过,它工作得很好。

这是filewav文件的元信息

>>file x.wav
x.wav: RIFF (little-endian) data, WAVE audio, stereo 48000 Hz

我所有的 wav 文件都是mpg321MP3源代码生成的。这是整个脚本

for f in $(find -name "*.mp3"); 
 do  
     mpg321 $f -w - | oggenc -q 5 -o "${f%.*}".ogg -;
 done;

从消息中我了解到

  1. 文件已损坏。或者
  2. 缺少 wav 编解码器

由于相同的文件在其他系统中没有任何问题,我确信该文件是有效的。所以应该是第二个。

有人可以帮助我,如何检查 oggenc 的所有依赖项是否都安装正确?

任何提示将不胜感激。

更新

上述脚本不会生成 wav 文件,它会将生成的 wav 音频流传递给 oggenc。为了在不同系统中测试 wav 文件,我使用了这些命令

 >> mpg321 -w x.wav 0b549a8241.mp3
 >> oggenc -q 5 -o x.ogg x.wav

在这两种方法中,我得到了同样的错误

4

1 回答 1

1

mpg321输出到标准输出时可能不会产生 wav 标头。

如我所见,您与48000 stereo.
oggenc工具44100 stereo默认使用。

所以-r -R 48000必须使用:

oggenc -r -R 48000 -q 5 -o x.ogg x.wav
于 2013-06-08T12:37:02.413 回答