当我直接从命令行运行sox时,如下所示:
sox -r 8000 -c 1 <wavfilename> <mp3filename>
我遇到了以下错误信息:
sox: 对于文件 '747a.mp3',未知的输出文件格式:文件类型 'mp3' 未知
我的机器运行的是 CentOS 操作系统。
如果您只需要将Wave文件编码为MP3,则可以使用LAME来实现相同的结果,例如:
lame -b 32 --resample 8 -a <wavefilename> <mp3filename>
使用yum在CentOS上轻松安装LAME。您首先需要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(基本仓库中有sox srpm),并安装libmad和lame-devel库(rpmforge有这些库)。完成后,使用sox -h命令列出支持的格式。安装mp3库后,
sox -t wav -r 8000 -c 1 <wavfilename> -t mp3 <mp3filename>
更多信息请参见此处 -