我在使用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文件,并在本地试了一下,它运行得很好。
这是wav文件的file
元信息
>>file x.wav
x.wav: RIFF (little-endian) data, WAVE audio, stereo 48000 Hz
我的所有wav文件都是从mpg321
来源的MP3
生成的。这是整个脚本
for f in $(find -name "*.mp3");
do
mpg321 $f -w - | oggenc -q 5 -o "${f%.*}".ogg -;
done;
从我理解的消息
由于同一文件在其他系统中没有任何问题,我确信该文件是有效的。所以它应该是第二个。
有人可以帮助我,如何检查oggenc的所有依赖项是否安装正确?
任何提示都会非常感激。
更新:
上面的脚本不会生成wav文件,它会将生成的wav音频流传递给oggenc。为了测试不同系统中的wav文件,我使用了这些命令
>> mpg321 -w x.wav 0b549a8241.mp3
>> oggenc -q 5 -o x.ogg x.wav
在这两种方法中,我都得到同样的错误
答案 0 :(得分:1)
mpg321
可能不会生成wav标头
我可以看到,您使用的是48000
stereo
oggenc
工具默认使用44100
stereo
。
因此必须使用-r -R 48000
:
oggenc -r -R 48000 -q 5 -o x.ogg x.wav