Por todos es bien sabido la superioridad que presenta el formato de compresión de audio OGG Vorbis frente al MP3, adicionalmente, el primero de los formatos es libre, no posee patentes, algo que, en el caso del MP3 no es cierto, el MP3 sí posee licencia. Desgraciadamente no siempre lo mejor es lo más difundido, solo espero que esta situación cambie algún día.
Solo en algunas ocasiones es “preferible” hacer uso de los MP3, por ejemplo, mi reproductor portátil únicamente acepta los formatos Mp3 y WMA, dos formatos privativos, el primero de ellos fué desarrollado por Fraunhofer ISS y el segundo por Microsoft.
Ahora bien, después de una breve introducción, vamos a lo nuestro, el script
en primera instancia removerá los espacios en los nombres de los ficheros OGG
Vorbis, seguidamente convertirá todos los carácteres en mayúsculas a
minúsculas, esto lo hacemos con
rename
, a continuación
decodificaremos el fichero con oggdec
, este último creará ficheros WAV. Luego
de haber creado los ficheros WAV, vamos a ajustar el volumen de dichos ficheros
a un nivel standard, con esto evitamos la posible existencia de una variación
muy drástica en el volumen de una canción a otra, sobretodo si se tienen
colecciones de álbumes distintos, con niveles de grabación diferentes, este
ajuste lo realizamos con el comando normalize
.
Ya para finalizar, el último bucle del script convertirá los ficheros WAV en MP3, de manera predeterminada se codificará el formato de compresión de audio a unos 160kbps, ud. puede modificar este comportamiento pasándole al script el único argumento que éste acepta, por ejemplo:
ogg2mp3 192
Esto codificará el fichero MP3 a 192kbps. Ya para finalizar, si no hay errores en la codificación de los ficheros, se procederá a borrar los ficheros WAV, que han sido usados como temporales.
#!/bin/bash
#Removiendo Espacios
rename 'y/\ /_/' *.ogg
#Mayusculas a Minusculas
rename 'y/A-Z/a-z/' *.ogg
#Conversion de archivo *.ogg a *.wav
for archivo in *.ogg; do oggdec $archivo; done
#Comente la siguiente linea si no desea igualar el volumen de los ficheros
normalize -m *.wav
for archivo in *.wav; do
#Variable auxiliar con el nombre base del archivo
aux="$(basename "$archivo" .wav)"
#Verificamos que el usuario introduzca el bitrate
#En caso de no insertar el bitrate, se proporciona uno predeterminado
if [ -z "$1" ]
then
echo ":Valor de bitrate no suministrado. Predeterminado: 160kbps."
lame -b 160 "$aux.wav" "$aux.mp3"
else
lame -b $1 "$aux.wav" "$aux.mp3"
fi
#Verificamos posible errores
#Si no hay errores, eliminamos el fichero *.wav
if [ $? -eq 0 ]
then
rm -f "$aux.wav"
fi
done
Nota: Es posible que de acuerdo a la distribución que use, deba instalar
ciertos paquetes, en mi caso solamente debi instalar el paquete normalize
y el
lame
, simplemente hice lo siguiente: sudo apt-get install lame normalize