如何使用sox将wav文件转换为mp3格式?

21

当我直接从命令行运行sox时,如下所示:

sox -r 8000 -c 1 <wavfilename> <mp3filename>

我遇到了以下错误信息:

sox: 对于文件 '747a.mp3',未知的输出文件格式:文件类型 'mp3' 未知

我的机器运行的是 CentOS 操作系统。


那么我猜这意味着问题与 Perl 没有任何关系? - innaM
那么我猜这与编程无关? - innaM
1
这应该被移动到Superuser。 - Christian Davén
我在命令行中遇到了同样的问题。 - Scott
4个回答

12

如果您只需要将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

非常感谢。我试了很久才让sox正常工作,但这个方法却可以直接使用,没有任何麻烦。这节省了我可能数小时的时间,因为其他人的解决方案都不适用于我。 - Morgan

10

您需要安装一个合适的MP3编码器,例如LAME,或者重新编译带有liblame支持的Sox。

这与您的Perl编程无关 :)


2
猜想一个人需要找出如何去做那件事情... - Scott

5

对于CentOS,您需要重新编译SOX(基本仓库中有sox srpm),并安装libmad和lame-devel库(rpmforge有这些库)。完成后,使用sox -h命令列出支持的格式。安装mp3库后,

sox -t wav -r 8000 -c 1 <wavfilename> -t mp3 <mp3filename>

3
启用RpmForge的提示(以安装libmad-devel和lame-devel):http://wiki.centos.org/AdditionalResources/Repositories/RPMForge您还需要alsa-lib-devel和libvorbis-devel。关于SRPM的一些信息:http://wiki.centos.org/HowTos/RebuildSRPM - Oleksandr Yanovets
1
CentOS总是让人头疼吗? - Scott
@SashaYanovets 感谢感谢感谢!这解决了“Sox没有编译mp3编码支持”的问题,再次感谢你。 - Moisés Olmedo

0

我读了这篇文章。如果已经安装了旧版本,该怎么办?我是通过dag存储库安装的...我对Linux不太熟悉。 - Scott
失效的链接。失效的链接。 - dotancohen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接