2009-06-25 14 views
16

Wenn ich Sox direkt von der Befehlszeile ausführen als;Wie konvertiere ich eine WAV-Datei mit Sox in das MP3-Format?

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

bekomme ich folgende Fehlermeldung:

sox: Unbekannt Ausgabedateiformat für '747a.mp3': Dateityp 'mp3' ist nicht

bekannt

Meine Maschine betreibt das CentOS-Betriebssystem.

+0

Also ich denke, das bedeutet, dass das Problem in keiner Weise Perl-verwandt? – innaM

+0

@Manni korrekt. –

+0

Also ich denke auch, dass dies nicht auf Programmierung bezogen ist? – innaM

Antwort

10

Sie müssen einen geeigneten MP3-Encoder installieren, z. LAME, oder kompilieren Sie Sox mit Unterstützung von liblame.

Dies ist unabhängig von der Perl-Programmierung :)

+1

Rate mal, wie man das macht .... – Scott

4

Für CentOS Sie SOX neu kompiliert werden müssen (die Basis Repo hat die SRPM SOx) mit den libmad und lame-devel Bibliotheken installiert (RPMForge diejenigen hat.) Wenn das ist getan, sox -h wird unterstützte Formate auflisten. Wenn mp3-Bibliotheken installiert sind,

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

Hinweise zum Aktivieren von RpmForge (um libmad-devel und lame-devel zu installieren): http://wiki.centos.org/AdditionalResources/Repositories/RPMForge Sie ‚ll brauchen auch alsa-lib-devel und libvorbis-devel und einige Informationen über SRPM: http://wiki.centos.org/HowTos/RebuildSRPM –

+1

Ist CentOS immer ein Schmerz in der Rückseite? – Scott

+0

@SashaYanovets Danke danke danke! das reparierte die "Sox wurde kompiliert ohne mp3 kodierung support" danke nochmal –

9

Als Alternative (wenn alles, was Sie brauchen, ist eine Wave-Datei in MP3 kodieren) können Sie einfach LAME verwenden zu erreichen die gleichen Ergebnisse, zum Beispiel:

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

LAME auf CentOS schmerzfrei installiert werden kann, mit yum. Sie werden zunächst die RPMForge Repository benötigen:

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

Dann:

yum install lame 
+0

Vielen Dank. Ich versuchte, Sox für immer und eine Hälfte arbeiten zu lassen, aber das funktionierte einfach ohne Probleme aus der Box. Ich habe wahrscheinlich Stunden damit verbracht, herauszufinden, warum keine Lösung für mich funktioniert hat. – Morgan