audioconverter0000755000000000000000000001046010232242174013771 0ustar rootroot00000000000000#!/bin/bash # ------------------------------------------------------------------------ # MilMazz # milmazz@milmazz.com # http://milmazz.com # Puede hacerme llegar sus comentarios, sugerencias, etc. # Artículo sobre el Audio Converter # http://milmazz.com/archivos/2005/04/21/convirtiendo-los-formatos-de-compresion-de-audio/ # ADVERTENCIA # Este script se propone para facilitar la conversion entre formatos # de compresion de audio, puede convertir ficheros mp3 a wav, mp3 a ogg, # ogg a wav, ogg a mp3, wav a ogg, wav a mp3, wma a mp3. # Haga uso de este script bajo su propia responsabilidad, no me hago # responsable en caso que ud. pierda sus datos o suceda cualquier tragedia. # Este script se ha probado en Ubuntu Linux (Hoary Hedgehog) # Previo al uso del script debe instalar los paquetes necesarios # * lame (permite codificar ficheros MP3) # * mpg321 (permite decodificar ficheros MP3) # * vorbis-tools (para poder codificar y decodificar ficheros OGG Vorbis) # * normalize (Ajusta el volumen de los ficheros) # * rename (para renombrar los ficheros) # ------------------------------------------------------------------------ #Funciones #Conversion de ficheros *.mp3 a *.wav function mp32wav() { check_ins "mpg321" "rename" ls *.mp3 errs $? "No se ha encontrado ningun fichero .mp3 en este directorio." rename 'y/\ /_/' *.mp3 rename 'y/A-Z/a-z/' *.mp3 for archivo in *.mp3; do local aux="$(basename "${archivo}" .mp3)" mpg321 -w "${aux}.wav" "${aux}.mp3" done } #Conversion de ficheros *.ogg a *.wav function ogg2wav() { check_ins "oggdec" "rename" ls *.ogg errs $? "No se ha encontrado ningun fichero .ogg en este directorio." rename 'y/\ /_/' *.ogg rename 'y/A-Z/a-z/' *.ogg for archivo in *.ogg; do local aux="$(basename "${archivo}" .ogg)" oggdec "${aux}.ogg" -o "${aux}.wav"; done } #Conversion de fichero *.wav a *.mp3 function wav2mp3() { check_ins "normalize" "lame" "rename" ls *.wav errs $? "No se ha encontrado ningun fichero .wav en este directorio." rename 'y/\ /_/' *.wav rename 'y/A-Z/a-z/' *.wav normalize -m *.wav echo -n "Introduzca el valor del bitrate: " read bitrate for archivo in *.wav; do local aux="$(basename "${archivo}" .wav)" if [ -z "${bitrate}" ]; then echo "Valor de bitrate no suministrado. Predeterminado: 160kbps." sleep 2 lame -b 160 "${aux}.wav" "${aux}.mp3" else lame -b ${bitrate} "${aux}.wav" "${aux}.mp3" fi done } #Conversion de fichero *.wav a *.ogg function wav2ogg() { check_ins "normalize" "oggenc" "rename" ls *.wav errs $? "No se ha encontrado ningun fichero .wav en este directorio." rename 'y/\ /_/' *.wav rename 'y/A-Z/a-z/' *.wav normalize -m *.wav for archivo in *.wav; do local aux="$(basename "${archivo}" .wav)" oggenc "${aux}.wav" -o "${aux}.ogg" done } #Conversion de archivo *.ogg a *.mp3 function ogg2mp3() { ls *.ogg errs $? "No se ha encontrado ningun fichero .ogg en este directorio." ogg2wav wav2mp3 echo "Borrando los ficheros *.wav temporales..." rm -f *.wav } #Conversion de archivo *.mp3 a *.ogg function mp32ogg() { ls *.mp3 errs $? "No se ha encontrado ningun fichero .mp3 en este directorio." mp32wav wav2ogg echo "Borrando los ficheros *.wav temporales..." rm -f *.wav } #Conversion de archivo *.wma a *.mp3 function wma2mp3() { check_ins "mplayer" "lame" "rename" ls *.wma errs $? "No se ha encontrado ningun fichero .wma en este directorio." rename 'y/\ /_/' *.wma rename 'y/A-Z/a-z/' *.wma #Decodificando con MPlayer, Codificando con lame for archivo in *.wma; do local aux="$(basename "${archivo}" .wma)" mplayer -vo null -vc dummy -af resample=44100 -ao pcm -waveheader "${aux}.wma" lame -m s audiodump.wav -o "${aux}.mp3" done rm -f audiodump.wav } #Detectando posibles errores function errs() { if [ "${1}" -ne "0" ]; then echo "ERROR: ${2}" echo "Saliendo del programa..." sleep 2 exit ${1} fi } #Comprobando la instalacion de paquetes function check_ins() { for i in $*; do which "${i}" if [ "${?}" -ne "0" ]; then errs "1" "El programa ${i} no esta instalado." fi done } #Programa Principal echo "Seleccione una opcion (1-7)" select opciones in "mp3 a wav" "mp3 a ogg" "ogg a wav" "ogg a mp3" "wav a ogg" "wav a mp3" "wma a mp3"; do echo Ud. eligio $opciones \($REPLY\) case $REPLY in 1) mp32wav;; 2) mp32ogg;; 3) ogg2wav;; 4) ogg2mp3;; 5) wav2ogg;; 6) wav2mp3;; 7) wma2mp3;; *) echo "ERROR: Introdujo una opcion invalida";; esac break done