30 ottobre, 2006

Convertire file mp3 in wave

AGGIORNAMENTO: qui ho postato un altro metodo per fare le conversioni.

Avete avuto anche voi l'esigenza di convertire files da mp3 a wave da
GNU/linux? Beh io si è ho notato che in Ubuntu non c'è un metodo
semplice per farlo. Credo che in realtà si possa fare con editor audio
come Audacity ma in ogni modo è poco comodo, e se i files da
convertire sono più di uno è ancora più scomodo. Per quanto ne
so quindi non esiste una interfaccia grafica che ci permetta di convertire,
ad esempio una intera di directory di mp3 in wav.
Non ho trovato nemmeno una utilità che mi permettesse di farlo da
console (probabilmente non ho approfondito molto la ricerca!).
Comunque un metodo non troppo difficile per farlo è utilizzare
le utilità messe a disposizione da gstreamer ed in particolare
l'utilità gst-launch che ci permette di costruire una pipeline gstreamer
per elaborare dati audio o video.
In Ubuntu Dapper per convertire un singolo file si può utilizzare il
comando:

gst-launch filesrc location=nomefile.mp3 ! mad ! wavenc ! \\
filesink location=nomefile.wav

Il comando è una unica riga. Qui viene spezzato su due per comodità
di scrittura. Per eseguirlo correttamente eliminate anche \\
Su Ubuntu Edgy Eft invece è leggermente diverso:

gst-launch-0.10 filesrc location=nomefile.mp3 ! mad ! \\
audioconvert ! wavenc ! filesink location=nomefile.wav

Naturalmente è scomodo scrivere questa lunga riga solo per
convertire un unico file. Sarebbe molto più comodo qualcosa
del tipo:

mp32wav nomefile.mp3

Che converte automaticamente il file nomefile.mp3 in nomefile.wav
Ottenere ciò in realtà è molto semplice. Basta scrivere uno script shell
minimale in questo modo:

#! /bin/sh

for file in "$@"; do
filename=`echo $file | cut -d. -f1`
# converto l'estensione del file in caratteri
# minuscoli
ext=`echo $file | cut -d. -f2 | tr A-Z a-z`
if [ "$ext" = "mp3" ]; then
echo "$file => $filename.wav"
gst-launch-0.10 filesrc location="$file" ! \\
mad ! audioconvert ! wavenc ! filesink \\
location="$filename.wav" >/dev/null 2>&1
fi
done

Anche qui il comando gst-launch-0.10 è spezzato ma va messo su
una sola riga. Lo script è per Ubuntu Edgy Eft, per la Dapper basta
adattare la riga con il comando gst-launch visto prima.
Ora non ci resta che copiare lo script in un file che chiameremo
ad esempio mp32wav e dargli i permessi di esecuzione con

chmod +x mp32wav
;)

Nessun commento:

Posta un commento