Script para cambiar de formato mp3 a ogg

  • killman
Posted: Mié, 04/07/2010 - 17:23

#!/bin/bash
#Traducido para www.softwarelibre-ec.org

padself=`pwd`/`basename $0`

function catch_errors() {
   zenity --question --text="Hay algo mal. ¿Quieres cerrar o reiniciar la aplicación?" --cancel-label="Cerrar" --ok-label="Reiniciar";
   [ "$?" = "0" ] && ( bash -c $padself & );
   exit 0;
}

function func_error2() {
    echo `date +%h:%m:%s`
}

trap catch_errors ERR;

mapvraag=0
titel="konfile.sh"
KBs=128;
FGOED=1;
opts="";

zenity --info --text="Hola, Yo soy <b>$titel</b> \nYo te ayudaré con la conversión de archivos a otro formato. \n \nEn la siguiente ventana, seleccione el formato de los archivos. Después de eso por favor, seleccione la carpeta que contiene los archivos de audio." --title="$titel"

vanform=$(zenity  --list --title="Seleccione una extensión de archivo" --height=270 --text "¿Qué tipo de archivo quieres convertir?" --radiolist  --column "Elegir" --column "Formato original" TRUE flac FALSE ogg FALSE wav FALSE mp3 FALSE aac FALSE flv);

mapvraag=$(zenity --file-selection --directory --title="Por favor, seleccione una carpeta con $vanform archivos." --file-filter="*.$vanform" );

pushd "$mapvraag"
for f in ./*.$vanform; do
        test -f "$f" || continue
        echo "$f bestaat, mooi zo.";
        FGOED=2;
    done   
popd

if [ $FGOED == 1 ]; then
    zenity --error --text="Uy, el tipo de archivo que ha seleccionado no se encuentra en la carpeta seleccionada. \nPor favor intente otra vez." --title="$titel";
    return 1;
fi

formaat=$(zenity  --list --height=270 --text "En que desea convertir?" --radiolist  --column "Elegir" --column "Formato convertido" TRUE mp3 FALSE ogg FALSE wav FALSE flac FALSE aac);
if [ $vanform = $formaat ]; then
    zenity --error --text="Usted elige la misma entrada y el formato de salida \nI no puede convertir los archivos si lo hace. \nvamos a reiniciar." --title="$titel"
    return 1;
    exit
fi

if [ $formaat == "ogg" ]; then
    opts="-acodec libvorbis";
fi

KBs=$(zenity  --list --height=380 --text "¿Qué resultados de calidad desea usted?\n<i>64k</i>: \nPequeño files\nBaja calidad \n<i>320k</i>: \nGrandes archivos\nAlta calidad." --radiolist  --column "Elegir" --column "kbps" TRUE 64 FALSE 96 FALSE 128 FALSE 192 FALSE 256 FALSE 320);

finalcheck=$(zenity --question --cancel-label="No" --ok-label="Si" --text="Vamos a convertir todos los archivos en: <b>$mapvraag</b> to <b><i>$formaat</i></b> at <i><b>$KBs</b> kb/s</i>.última revision, o no?" --title="$titel")

trap func_error2 ERR;

pushd "$mapvraag"
for i in *.$vanform; do
        mkdir -p "$mapvraag/converted/$formaat/"
        ffmpeg -y -i "$i" -ab $KBs"k" $opts "$mapvraag/converted/$formaat/$i.$formaat" 2>&1 | zenity --progress --text="Converting: <b>$i</b> from <b>$vanform</b> to <b>$formaat</b> at <b>$KBs</b> kb/s" --title="$titel" --auto-close --pulsate
        echo $i gedaan

done

zenity --question --cancel-label="Cerrar" --ok-label="Aceptar." --text="Listo! \nHe guardado los archivos convertidos en esta carpeta: <b>$mapvraag/converted/$formaat</b>. \n \n¿Quiere que para intentar abrir en el explodador la carpeta de salida? \n \n \nCreated By : <b>Killman</b>." --title="$titel";
[ "$?" = "0" ] && konqueror --no-desktop "./converted/$formaat";
popd
echo Done