19 enero 2007

Convertir mp3 en ogg ==> Ahorrar espacio (mp32ogg)

Buenas de nuevo a todos y a todas, en este post os pongo un script en bash muy sencillo que me hice para convertir la música que tenía en mp3 al formato libre ogg vorbis, con el consiguiente ahorro de espacio en mi disco duro que ello conlleva.

Tenía unos 5GB de música en mp3, y ahora tengo 3,8 o_O impresionante la capacidad de compresión de este formato.

El script es capaz de convertir todo el contenido de un directorio y sus subdirectorios, así como un archivo individual, entrado por parámetros. Os lo pongo y luego os explico como funciona.

#!/bin/bash

RUTA=$1
if [ -z "$1" ]; then
RUTA=$1
fi

find $RUTA -name '*3' | sort | while read FILE
do
NEWFILE=`echo ${FILE} | sed "s/.mp3/.ogg/g" | sed "s/.MP3/.ogg/g"`
sox "${FILE}" -t ogg "${NEWFILE}" #&& rm "${FILE}"
echo ${NEWFILE}
done
En primer lugar, para lanzarlo sería "./mp320gg /rutadelarchivoOdirectorio", ninguna complicación.

Se recoge la ruta entrada y se busca todos los archivos acabados en 3 contenidos en la ruta. Se cambia el nombre del archivo para obtener el de salida con una cadena de sed's y posteriormente se pasa a la conversión del archivo. Se convierte mediante el programa sox, y se printa el nombre del nuevo archivo por pantalla.

*Nótese que al escoger todos los archivos que acaben en 3, (se ha hecho para soportar estensiones tanto MP3 como mp3), si tenemos un archivo de nombre fichero.ad3, también intentará convertirlo. Puede causar problemas.

Por otro lado, he decidido mantener el mp3 original, para borrarlo, simplemente basta con descomentar el final de la línea donde se realiza la conversión, para que quede de la siguiente manera:

sox "${FILE}" -t ogg "${NEWFILE}" && rm "${FILE}"

Espero que os sea útil.

No hay comentarios: