Convirtiendo los formatos de compresión de audio

Siguiendo con la temática que propuse en el artículo Convirtiendo formatos de audio OGG a MP3 he decido ampliar dicho script para abarcar nuevos formatos. En esta ocasión he decidido hacerlo un poco más interactivo con el usuario, aún faltan cosas, pero las funciones elementales las cumple a cabalidad.

Las conversiones que se pueden realizar son las siguientes:

  • mp3 -> wav
  • mp3 -> ogg
  • ogg -> wav
  • ogg -> mp3
  • wav -> ogg
  • wav -> mp3

Antes de proseguir, vamos a revisar los requerimientos.

  • mpg321: Reproductor libre de MP3 bajo linea de comandos, compatible con mpg123, este último no es libre. Nos permitirá decodificar ficheros MP3 (mp3 -> wav).
  • vorbis-tools: Paquete de herramientas de OGG Vorbis, entre las cuales se encuentran oggenc, para codificar ficheros WAV (wav -> ogg), y oggdec, para decodificar ficheros OGG Vorbis (ogg -> wav).
  • lame: Codificar ficheros MP3 (wav -> mp3).
  • normalize: Para ajustar o equilibrar el volúmen de los distintos ficheros involucrados, actúa sobre ficheros WAV.

Una breve descripción acerca de la funcionalidad del paquete normalize la podrá encontrar en el artículo Convirtiendo formatos de audio OGG a MP3.

Para aquellas personas que disfrutan de una distribución Debian o alguna basada en ella simplemente deben hacer lo siguiente como superusuario o root.

apt-get install lame mpg321 vorbis-tools normalize

El script temporalmente actúa sobre los directorios actuales, aún no tiene la capacidad de permitir como parámetros un directorio origen y un directorio destino, próximamente implementaré esta opción, ante lo explicado anteriormente, puede que le resulte conveniente copiar el script dentro del directorio /usr/local/bin, así podrá ejecutarlo desde cualquier directorio de su $HOME sin inconveniente alguno.

Desde mi punto de vista el uso del script es intuitivo, sin embargo, explicare la evolución del proceso de conversión de 3 ficheros OGG Vorbis a MP3 con un ejemplo. Puede descargar el script al hacer clic en AudioConverter.

Cosas por hacer (TODO)

  • Permitir al usuario indicar un directorio origen y un directorio destino
  • Permitir al usuario seleccionar si el formato de compresión de audio en un fichero mp3 sea CBR (Tasa Constante de Bits) o VBR (Tasa Variable de Bits)
  • Permitir al usuario seleccionar la calidad de codificación de los ficheros OGG Vorbis, de manera predeterminada está seleccionada como 3, en donde, -1 representa la peor calidad y 10 la mejor.

¿Puedo colaborar?

Por supuesto, este script es de uso libre, puede colaborar también al comentar si existe algún fallo, o simplemente con sus sugerencias, las cuales serán tomadas en cuenta para el posterior desarrollo del script.

Anuncios

24/04/2005 Sale la versión 0.3 del script.

Características de la versión

Se añaden cuadros de dialogos con el uso de Zenity, permitiendo así interactuar con el usuario de manera más amena.

22/04/2005 Sale la versión 0.2 del script.

Características de la versión

  • Se verifica que las aplicaciones necesarias se encuentren instaladas.
  • Se verifica la existencia de ficheros origen en el directorio donde es ejecutado el script.
  • Se incorpora la posibilidad de convertir ficheros WMA a MP3.
  • El script renombra los ficheros para evitar posibles errores en las conversiones a realizar.
  • El nombre del ejecutable cambia a: audioconverter, de esta manera el comando es más homogéneo a los comandos regulares del shell.

Agradecimientos

Muchas gracias Gabriel de guia-ubuntu.org por sus comentarios y sugerencias.

2 min read

Adobe adquiere Macromedia

Adobe Systems Incorporated ha anunciado a través de un comunicado de prensa la adquisición de Macromedia Inc., se estima que el valor de dicha adquisición es de aproximadamente 3.4 billones de dolares.

Esta noticia está generando controversia y no es para menos, algunos apoyan la adquisición hecha por Adobe, yo pienso que estas personas están siendo muy entusiastas, pero la historia nos recuerda que los monopolios no son nada buenos, ¿necesito dar ejemplos?. Sí, efectivamente, Adobe por medio de esta adquisición ha “dejado fuera” a quien en los últimos años era su máximo competidor. Macromedia ofrecía mejores opciones en cuanto aplicaciones dirijidas al campo del dasarrollo/diseño web, aunque Adobe cuenta con Photoshop, para muchos la mejor herramienta gráfica que ha salido al mercado en todos estos años.

Por ejemplo, para Diego Lafuente la fusión puede generar ciertos beneficios:

…Esto es groso, genial, brutal, de hecho quiero ver las cosas que saldrán de esta fusión (por ej.): PDF + Flash + Flex… oh Dios, lo que viene lo que viene…

Pero desde mi punto de vista Diego no está considerando un factor muy importante, y es que históricamente las empresas monopolistas, al no tener competencia en el mercado, hacen lo que les da la gana con él, por ejemplo, podrían aumentar los precios de sus productos y sus clientes estarían obligados (en caso de realizar una actualización de la suite o de alguna de las aplicaciones en particular) a cancelar montos bastante considerables, por lo que habría que evaluar los posibles aumentos en los costos de dichas inversiones en pequeñas y medianas empresas, por otra parte, es bien sabido que las empresas monopolistas no actualizan su software con regularidad, en ciertos casos, solo aplican “parches”, los cuales son considerados mejoras al software por parte de la empresa (en este caso en particular, Adobe), para adquirir estas “mejoras” el cliente debe cancelar ciertos montos, pero una mejora drástica no se llega a ver tan seguido como en los casos cuando existe competencia en el mercado.

El mismo Diego en uno de los comentarios dejados en su artículo Adobe compra Macromedia parece comprender el riesgo que se genera en el momento en que una empresa controla el mercado, sobretodo, en cuanto a los precios.

Sí eran competidores, competían… Adobe pujaba por la web permanentemente. Aunque FW costaba 4 veces menos, era competidor. Le quitaba un gran mercado, yo siempre usé Photoshop es que no es que me disgustara el FW simplemente no me gustaba el sistema de trabajo que tiene. Muchos lo encontraron muy cómodo.

También podriamos considerar otro hecho bastante peculiar, y es que una persona que venía trabajando con la suite ofrecida por Macromedia hace varios años, puede que no esté acostumbrada al posible cambio en el flujo de trabajo que proponga Adobe en las aplicaciones de ahora en adelante, ¿es posible medir el costo generado por estos cambios?, en realidad no es una tarea sencilla, pero es suficientemente claro que este proceso de “adaptación” representa ciertos costos para una empresa, ya que en el caso de sufrir cambios drásticos, habría que dedicar cierto tiempo al proceso de adaptación, y es que nosotros los seres humanos, somos animales de costumbres, es decir, ciertos cambios podrían generar pequeños inconvenientes a la hora de trabajar con estas aplicaciones.

Ya para finalizar, quisiera mostrar mi apoyo a la opinión emitida por Gez.

No me traten de utópico. Sólo creo que el acceso masivo a la información y la universalización del conocimiento es el paso evolutivo lógico para la humanidad, y no le veo mucha vida a estas corporaciones cuyo único vector son las ganancias.

La aparición de la imprenta marcó en su momento una gran revolución, porque le quitaba poder a la iglesia, que entonces era poseedora del poder que da el conocimiento.

Ahora estamos en los umbrales de una nueva revolución, donde el conocimiento y la tecnología se empezarán a ver como un bien de la humanidad y no como algo a lo que sólo empresas multimillonarias puedan acceder.

Amén. Existen alternativas libres que pueden igualar o mejorar el rendimiento de las aplicaciones descritas anteriormente, pero de igual manera, como mencione anteriormente, el hombre es un animal de costumbres, allí radica la esencia del cambio.

3 min read

Viendo tus diseños en una Mac

Para todas aquellas personas que no posean una Mac, quizás la aplicación Screenshot Generator les resulte bastante útil, si eres diseñador web seguramente te preocuparás porque tus trabajos se vean correctamente en todos los navegadores, esta aplicación te permite simular la vista en los siguientes navegadores bajo Mac:

  • Safari 1.3
  • Internet Explorer 5.2.3
  • Mozilla 1.7.7

Vía Ovillo.

~1 min read

Elizabeth Garbeth

Elizabeth Garbeth, una niña de apenas 13 años de edad, dará este año una presentación en una conferencia de GNU/Linux en Australia, su presentación es Extending Tuxracer - Learning by Playing. En este seminario, Elizabeth describirá como crear nuevos recorridos para competir en Tuxracer y demostrará los pasos que están envueltos para realizar tal operación.

A pesar de los pocos años que ha vivido Elizabeth, ha tenido bastante contacto con los ordernadores y el mundo GNU/Linux desde muy pequeña, su historia es realmente impresionante.

I have had my own computer since I turned two. By the time I was nine, my computer ran Debian… and before I turned ten my dad convinced me to install Debian for him on the server that became raff.debian.org. That just proves that installing Debian really isn’t very hard, particularly when my Dad is around to answer questions! I also play the violin, am treasurer of my 4H club, and have performed in musicals at my school.

Bdale Garbee, Linux CTO para HP y sirve como lider del proyecto Debian, es el padre de Elizabeth, así que se podrán imaginar la influencia que ha generado éste en su hija, de hecho, Bdale le planteó el reto a su hija de aprender a como crear sus propios recorridos en el juego Tuxracer, puesto que Elizabeth le dijo que al igual que muchos juegos de computadora, al inicio Tuxracer es divertido, pero que eventualmente te fue cansando de recorrer los mismos caminos de siempre. Elizabeth no solamente cumplió el reto planteado por su padre, sino que ahora hará una presentación sobre ello.

1 min read

Convirtiendo formatos de audio OGG a MP3

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 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

2 min read