#!/bin/bash # # # # # # # # # # # # # # # # # # # # # # # # Convierte archivos wma a mp3 y a ogg v0.4 # Copyright sebb@sebb.info # Más información en sebb.info # Licencia Creative Commons 3.0 # # # # # # # # # # # # # # # # # # # # # # # IFS=" " # 1- buscar ffmpeg ffmpeg &> /dev/null if [ "$?" -ne "1" ] ; then kdialog --title "Conversor wma a mp3" --sorry "Error: ffmpeg no está \instalado en este sistema. Puedes instalarlo con: sudo apt-get install ffmpeg" exit 1 fi function da_error { kdialog --sorry "Ha habido un error" exit 1 } # 2- Elegir tipo de conversión, coger lista de archivos, etc function elegir_opciones { tipoconversion=`kdialog --radiolist "Por favor, elige una opción:" \ a "De \"wma\" A \"mp3\"" 0 b "De \"wma\" A \"ogg\"" 0` if [ "$tipoconversion" = "a" ] ; then tipoconversion="mp3" elif [ "$tipoconversion" = "b" ] ; then tipoconversion="ogg" else da_error fi freq=`kdialog --title "Elige la frecuencia de muestreo:" --inputbox "Elige la frecuencia de muestreo:" "44100"` ( [ "$freq" = "" ] || [[ "$freq" =~ "[[:punct:]]" ]] || [[ "$freq" =~ "[[:alpha:]]" ]] || \ [[ "$freq" =~ "[[:blank:]]" ]] ) && freq=44100 bitrate=`kdialog --title "Elige el bitrate (tasa de bits):"\ --inputbox "Elige el bitrate (tasa de bits):" "192"` ( [ "$bitrate" = "" ] || [[ "$bitrate" =~ "[[:punct:]]" ]] || [[ "$bitrate" =~ "[[:alpha:]]" ]] || \ [[ "$bitrate" =~ "[[:blank:]]" ]] ) && bitrate=192 directorio=`kdialog --title "Elige el directorio donde están los WMA:" --getexistingdirectory ~` [ "$directorio" = "" ]&&da_error cd $directorio||da_error directorio_salida=`kdialog --title "Conversor wma a mp3 y ogg" --menu "¿Quieres guardar los $tipoconversion \ en el mismo directorio o en otro directorio?" a "Mismo directorio: $directorio" b "Otro directorio"` [ "$directorio_salida" = "a" ]&&directorio_salida=$directorio [ "$directorio_salida" = "" ]&&da_error if [ "$directorio_salida" = "b" ] ; then directorio_salida=`kdialog --title "Elige el directorio donde quieres guardar los \ $tipoconversion" --getexistingdirectory ~` [ "$directorio_salida" = "" ]&&da_error fi confirmar=`kdialog --warningcontinuecancel "Convertir Desde: $directorio Hacia: $directorio_salida Formato: $tipoconversion Frecuencia: $freq Bitrate: $bitrate. Si desea cambiar las opciones, pulse \"Cancelar\" Si está conforme, pulse \"Continuar\" " ` [ "$?" = "2" ]&&elegir_opciones } elegir_opciones ( kdialog --title "¡Empezando la conversación!" --passivepopup \ "¡Empezando la conversación! Desde: $directorio Hacia: $directorio_salida Formato: $tipoconversion Frecuencia: $freq Bitrate: $bitrate." 4 ) & # 3- limpiar nombres y renombrar vuelta=1 max=`find -iname "*wma" -print | wc -l` progreso=`kdialog --progressbar "Convirtiendo archivos de wma a $tipoconversion" $max` for archivo in `find -iname "*wma" -print` ; do archi_limpio=`echo $(basename "$archivo") | sed -e 's/?//g' -e 's/!//g' | \ sed -e "s/.wma$/\.$tipoconversion/i"` if [ -a "$directorio_salida/$archi_limpio" ] ; then nuevo=`echo $(basename "$archivo") | sed -e 's/?//g' -e 's/!//g' | sed -e "s/.wma$/\ $(date +%s).$tipoconversion/i"` archi_existe=`kdialog --title "Conversor wma a $tipo_conversion" --yesnocancel "¡Error! El archivo $archi_limpio ya existe. ¿Deseas renombrarlo? ¡Si eliges NO, el archivo se va a sobreescribir!"` respuesta=$? if [ "$respuesta" = "2" ] ; then dcop $progreso close&&da_error elif [ "$respuesta" = "1" ] ; then rm -f "$directorio_salida/$archi_limpio" elif [ "$respuesta" = "0" ] ; then pregunta=`kdialog --inputbox "Elige un nuevo nombre para $archivo" "$nuevo"` archi_limpio="$nuevo" fi fi # Renombrar posibles duplicados [ -s "$directorio_salida/$archi_limpio" ] && \ mv "$directorio_salida/$archi_limpio" "$directorio_salida/$archi_limpio.bak.`date +"%d-%m-%Y.%H-%M-%S"`.mp3" # 4- convertir ffmpeg -i "$archivo" -acodec $tipoconversion -ab $bitrate -ar $freq "$directorio_salida/$archi_limpio" [ "$?" -eq "0" ]||da_error dcop $progreso setProgress $vuelta vuelta=$((vuelta+1)) done dcop $progreso close kdialog --title "Conversor wma a mp3 y ogg" --msgbox "¡El proceso ha terminado con éxito! Los archivos están en $directorio_salida"