当我直接从命令行运行 sox 作为 ;
sox -r 8000 -c 1 <wavfilename> <mp3filename>
我收到以下错误消息:
sox:“747a.mp3”的未知输出文件格式:文件类型“mp3”未知
我的机器运行的是 CentOS 操作系统。
作为替代方案(如果您只需要将 Wave 文件编码为 MP3),您可以使用 LAME 来获得相同的结果,例如:
lame -b 32 --resample 8 -a <wavefilename> <mp3filename>
LAME 可以使用 yum 轻松安装在 CentOS 上。您首先需要 RPMForge 存储库:
rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
然后:
yum install lame
您需要安装适当的 MP3 编码器,例如LAME,或重新编译带有 liblame 支持的 Sox。
这与您的 Perl 编程无关 :)
对于 CentOS,您将需要重新编译 SOX(基本 repo 有 sox srpm)并安装 libmad 和 lame-devel 库(rpmforge 有这些。)一旦完成,sox -h 将列出支持的格式。安装 mp3 库时,
sox -t wav -r 8000 -c 1 <wavfilename> -t mp3 <mp3filename>
更多信息在这里 -