#!/bin/bash # PRECARIO script que convierte archivos .mp3 a .ogg y vice-versa # Esteban Borges 2007 - esteban.borges at gmail dot com # Se necesitan los paquetes libvorbis0 vorbis-tools mpg123 # para que este script funcione adecuadamente. DN="/dev/null" BITRATE="160" # Conversión de OGG a MP3 ogg_mp3 () { if [ -z $1 ] || [ ! -d $1 ]; then echo "Debe ingresar un directorio válido. Abortando" exit 0 fi if [ ! -z $2 ] && [ "$2" = "-R" ]; then FND=$(find $1 -name "*.$EXT") else FND=$1/*.$EXT fi if [ -z $2 ]; then if ! ls $1/*.$EXT &> $DN then echo "No se han encontrado archivos $EXT en $1" exit 0 fi fi for i in $FND do N=$(echo $i | sed -e "s/\."$EXT"//g") oggdec $N.ogg && lame -b $BITRATE $N.wav $N.mp3 if [ $? -eq 0 ]; then rm $N.wav -f fi done } # Conversión de MP3 a OGG mp3_ogg () { if [ -z $1 ] || [ ! -d $1 ]; then echo "Debe ingresar un directorio válido. Abortando" exit 0 fi if [ ! -z $2 ] && [ "$2" = "-R" ]; then FND=$(find $1 -name "*.$EXT") else FND=$1/*.$EXT fi if [ -z $2 ]; then if ! ls $1/*.$EXT &> $DN then echo "No se han encontrado archivos $EXT en $1" exit 0 fi fi for i in $FND do N=$(echo $i | sed -e 's/\.mp3//g') mpg123 -w /dev/stdout $N.mp3 | oggenc - -o $N.ogg done } # Función de Ayuda ayuda () { cat < Uso: $0 Opciones: --omp3 ---> Convierte archivos ogg a mp3 --mogg ---> Convierte archivos mp3 a ogg --ayuda ---> Muestra esta ayuda. Funcionamiento: Puedes cambiar el Bitrate de los archivos .mp3 editando la variable BITRATE que se encuentra al inicio de este script. Ejemplos: El siguiente comando convertirá todos los archivos .mp3 que se encuentren dentro de la carpeta /home/esteban/Desktop/musica/ y todas sus subcarpetas. $0 --omp3 /home/esteban/musica/ -R Al suprimir el -R simplemente se convertirán los archivos de la carpta /home/esteban/Desktop/musica/ $0 --omp3 /home/esteban/musica/ EOF exit 0 } # Parámetros del Script case $1 in --omp3) # Convierte de OGG a MP3 EXT="ogg" OEXT="mp3" ogg_mp3 $2 $3 ;; --mogg) # Convierte de MP3 a OGG EXT="mp3" OEXT="ogg" mp3_ogg $2 $3 ;; --ayuda) # Ayuda ayuda ;; *) # Opcion invalida. echo -e "\e[31;01mError: Argumento invalido\e[m" ayuda;; esac