Convertire da OGG a MP3

Per convertire un gruppo di file da formato OGG a MP3 ecco un semplice shell script (che ho chiamato ogg2mp3.sh):

#!/bin/bash
LAMEOPTS='-b 192 -q 2'
for f in $*; do
    sox $f u.wav
    lame $LAMEOPTS u.wav ${f/.ogg/.mp3}
    rm -f u.wav
done

Esempio d’uso:

cd dove-stanno-un-sacco-di-ogg
sh qualche-dir/ogg2mp3.sh *.ogg

Al termine dell’esecuzione, accanto ad ogni .ogg troverete il corrispondente .mp3.

Annunci

11 thoughts on “Convertire da OGG a MP3

  1. ciao, ho provato il tuo scritp
    ma quello che segue e’ il messaggio
    di errore:

    root@terra:/home/melo/musica/Casadei/Le_canzoni,_la_storia__disc_1_ # _ogg2mp3.sh *.ogg
    sox: Can’t open input file ’01’: No such file or directory
    Could not find “u.wav”.
    /usr/sbin/_ogg2mp3.sh: line 4: 16431 Segmentation fault sox $f u.wav
    Could not find “u.wav”.
    sox: Can’t open input file ‘Ciao_mare.ogg’: No such file or directory
    Could not find “u.wav”.
    sox: Can’t open input file ’02’: No such file or directory
    Could not find “u.wav”.
    /usr/sbin/_ogg2mp3.sh: line 4: 16440 Segmentation fault sox $f u.wav

    melo

  2. ah il problema sorge quando il titolo del brano ha degli spazi vuoti.. per cui
    viene spezzato e ovviamente non riconosciuto..

    es: ‘nella vecchia fattoria’ diventa:

    nella
    vecchia
    fattoria

    ..melo

  3. risolto il problema:

    basta quotare $* quindi lo script diventerebbe il seguente:

    #!/bin/bash
    LAMEOPTS=’-b 192 -q 2′
    for f in “$*”; do
    sox $f u.wav
    lame $LAMEOPTS u.wav ${f/.ogg/.mp3}
    rm -f u.wav
    done

    grazie ancora, melo

  4. gh…. piccola rettifica:

    #!/bin/bash
    LAMEOPTS=’-b 192 -q 2′
    for f in $*; do
    sox $f u.wav
    lame $LAMEOPTS u.wav “$f”.mp3
    rm -f u.wav
    done

  5. aarghhh!! scusare di nuovo..

    rettifico di nuovo:

    ———————————————-
    #!/bin/bash

    LAMEOPTS=’-b 192 -q 2′

    for f in *.ogg; do

    echo $f
    sox “$f” u.wav
    lame $LAMEOPTS u.wav “${f/.ogg/.mp3}”
    rm -f u.wav

    done

    ————————————————————————————-
    melo

  6. @melo: grazie del lavoro di debug dello script, hai fatto un buon lavoro.
    Purtroppo lo script ha almeno un altro difetto: i tag definiti negli ogg vengono persi nella conversione. Per questo motivo e per altri, io ora uso e consiglio SoundConverter. Provalo.

  7. Il fascino dello script e’ nettamente superiore a qualsiasi applicazione grafica per gnome! (e viva pure Gentoo Linux).
    Propongo un’ulteriore modifica, che prevede l’uso di ‘oggdec’ al posto di ‘sox’ e un bitrate variabile nella conversione:

    #!/bin/bash

    #LAMEOPTS=”-b 192 -q 2″
    LAMEOPTS=”-V 2 –vbr-new”

    for f in $*; do
    oggdec -o tmp.wav $f
    lame $LAMEOPTS tmp.wav ${f/.ogg/.mp3}
    rm -f tmp.wav
    done

  8. @karovls: concordo con te sul fascino degli script, ma dopo troppi anni di script mi sono impigrito ed ora preferisco le finestre, il mouse, tutte quelle cose lì. 🙂

  9. Salv e.
    VIsto che uso amarok e sono uno fissato con i tag, me ne sono fatto una versione mia. Se ne avete bisogno eccola qua, funziona benone!

    #!/bin/bash

    # Software relased under the terms of GNU/GPL2
    # Copyright Silian Della Ragione 2007
    #
    # Dependences: lame oggdec id3tag
    # Usage: ogg2mp3.sh file1.ogg file2.ogg
    # ogg2mp3.sh *.ogg
    #
    # Set mp3 bitrate here:
    MP3RATE=”160″

    LAMEOPTS=”-b $MP3RATE -q 2″
    TMP=”/tmp/tmp.wav”

    for f in *.ogg; do
    echo “Converting $f…”

    ARTISTA=”`ogginfo “$f” | grep artist | cut -d = -f 2`”
    ALBUM=”`ogginfo “$f” | grep album | cut -d = -f 2`”
    TITOLO=”`ogginfo “$f” | grep title | cut -d = -f 2`”
    TRACK=”`ogginfo “$f” | grep tracknumber | cut -d = -f 2`”
    YEAR=”`ogginfo “$f” | grep date | cut -d = -f 2`”
    ID3TAGS=( -a”$ARTISTA” -A”$ALBUM” -s”$TITOLO” -t”$TRACK” -y”$YEAR” )

    oggdec -o $TMP “$f”

    lame $LAMEOPTS $TMP “${f/.ogg/.mp3}”
    nf=`echo “$f” | sed -e s/.ogg/.mp3/`
    id3tag “${ID3TAGS[@]}” “$nf”

    rm -f $TMP
    done

I commenti sono chiusi.