2009-06-25 11 views
16

Quando eseguo sox direttamente dalla riga di comando come;Come si converte un file wav in formato mp3 usando sox?

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

ottengo il seguente messaggio di errore:

sox: formato di uscita sconosciuto per '747a.mp3': Tipo di file 'mp3' non è noto

mio la macchina sta eseguendo il sistema operativo CentOS.

+0

quindi credo che questo significa che il problema non è in alcun modo Perl-correlato? – innaM

+0

@Manni corretto. –

+0

Quindi suppongo anche che questo non sia collegato alla programmazione? – innaM

risposta

10

È necessario installare un codificatore MP3 appropriato, ad es. LAME, o ricompilare Sox con il supporto per liblame.

Questo è indipendente dalla vostra programmazione Perl :)

+1

Indovina uno ha bisogno di capire come farlo .... – Scott

4

Per CentOS è necessario ricompilare SOX (repo di base ha lo SRPM SOx) con le librerie libmad e zoppo-devel installati (RPMForge ha quelli.) Una volta Fatto ciò, sox -h elencherà i formati supportati. Quando sono installate le librerie mp3,

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

Suggerimenti per abilitare RpmForge (per installare libmad-devel e lame-devel): http://wiki.centos.org/AdditionalResources/Repositories/RPMForge Tu Avremo anche bisogno di alsa-lib-devel e libvorbis-devel E alcune informazioni su SRPM: http://wiki.centos.org/HowTos/RebuildSRPM –

+1

CentOS è sempre un dolore nella parte posteriore? – Scott

+0

@SashaYanovets Grazie, grazie! che ha corretto il "Sox è stato compilato senza supporto per la codifica mp3" grazie ancora –

9

In alternativa (se tutto quello che serve è quello di codificare un file Wave in formato MP3) si può semplicemente utilizzare LAME per raggiungere gli stessi risultati, ad esempio:

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

LAME può essere installato su CentOS in modo indolore usando yum. Per prima cosa è necessario il repository RPMForge:

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

Poi:

yum install lame 
+0

Grazie mille. Ho provato a far funzionare sox per sempre e mezzo, ma questo ha funzionato senza problemi. Mi hanno risparmiato ore di tentativi per capire perché le soluzioni di qualcun altro non hanno funzionato per me. – Morgan