2009-06-25 11 views
16

Lorsque je cours sox directement à partir de la ligne de commande comme;Comment convertir un fichier wav au format mp3 en utilisant sox?

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

Je reçois le message d'erreur suivant:

sox: format de fichier de sortie inconnue pour '747a.mp3': Type de fichier 'mp3' est pas connu

Mon La machine exécute le système d'exploitation CentOS.

+0

Je suppose que cela signifie que la question est en Perl pas lié à sens unique? – innaM

+0

@Manni correct. –

+0

Donc je suppose aussi que ce n'est pas lié à la programmation? – innaM

Répondre

10

Vous devez installer un encodeur MP3 approprié, par ex. LAME, ou recompilez Sox avec le support de liblame.

Ceci est indépendant de votre programmation Perl :)

+1

Devinez, il faut savoir comment faire .... – Scott

4

Pour CentOS, vous aurez besoin de recompiler SOX (la prise en pension de base a la SRPM sox) avec les bibliothèques libmad et devel boiteux installés (RPMForge a ceux-ci.) Une fois cela est fait, sox -h listera les formats supportés. Lorsque les bibliothèques mp3 sont installés,

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

Conseils pour activer RpmForge (pour installer libmad-devel et lame-devel): http://wiki.centos.org/AdditionalResources/Repositories/RPMForge Vous Il faudra aussi alsa-lib-devel et libvorbis-devel Et quelques informations sur SRPM: http://wiki.centos.org/HowTos/RebuildSRPM –

+1

CentOS est toujours une douleur à l'arrière? – Scott

+0

@SashaYanovets Merci merci! qui a fixé le "Sox a été compilé sans support de codage mp3" merci encore –

9

Comme alternative (si vous avez besoin est d'encoder un fichier Wave MP3) vous pouvez simplement utiliser BOITEUX pour atteindre les mêmes résultats, par exemple:

lame -b 32 --resample 8 -a <wavefilename> <mp3filename> 

paralytiques être installé sur CentOS en utilisant yum sans douleur. Vous devez d'abord le dépôt de RPMForge:

rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm 

Puis:

yum install lame 
+0

Merci beaucoup. J'ai essayé de faire travailler sox pour toujours et demi, mais cela a juste fonctionné hors de la boîte sans tracas. Il m'a probablement épargné des heures pour essayer de comprendre pourquoi les solutions de quelqu'un d'autre ont fonctionné pour moi. – Morgan

Questions connexes