viernes, 20 de junio de 2014

Reproducir archivos mp3 en la consola de comandos

Muchos pensarán que ejecutar tareas vía terminal cuando existen aplicaciones gráficas que minimizan la dificultad y facilitan la experiencia es propio de frikis o fundamentalistas de la programación. Sea cual sea su caso, saber como resolver determinadas operaciones a través de la consola de comandos solo puede resultar positivo y a ningún usuario le sobra conocer estas cosas. Hoy vamos a explicar como reproducir archivos de música en formato mp3 por terminal con el comando mpg123.

Lo primero, por supuesto, es instalarlo de la manera tradicional, con apt-get o aptitude.

sudo apt-get install mpg123

Una vez instalado, pasamos a posicionarnos en la carpeta donde estén los archivos a reproducir, que es más cómodo. Cuando estemos allí las opciones son varias. Hablemos de ellas.

mpg123 [nombre_de_archivo]

Si tecleamos la orden de esta manera el archivo mp3 comenzará a ejecutarse mientras que se nos muestran sus metadatos (el autor, el nombre del disco, el año y todas esas cosas...) en el terminal.


Es así de simple, pero conviene comentar algunos aspectos, como que el terminal quedará inutilizable hasta el fin de la reproducción, con lo que habría que abrir otro si queremos seguir metiendo órdenes por teclado. Cuanto termina la canción recuperamos la facultad de teclear comandos aunque los impacientes pueden pulsar Ctrl + C y finalizar abruptamente la reproducción cuando lo deseen, restableciendo así la línea de comandos.

Si no queremos visualizar los metadatos haremos lo siguiente:

mpg123 -q [nombre_de_archivo]

Por lo demás, el archivo se reproducirá de la misma manera.

Conviene destacar que GNU/Linux considera el espacio en blanco como un carácter más, pero lo trata de manera diferente según el caso. Si tenemos un archivo en cuyo nombre hay espacios en blanco (como en el ejemplo de la imagen de arriba, que es 07-El Scorcho.mp3) hay que encerrarlo entre comillas, y siempre incluir la extensión, si la tiene. Ni que decir tiene que hagamos lo mismo para movernos entre directorios. Para simplificar podemos copiar y pegar utilizando los atajos de teclado.

Si queremos liberar la consola de comandos y seguir usándola mientras el archivo de sonido se reproduce en segundo plano esto es lo que haremos:

mpg123 -q [nombre_de_archivo] &

En pantalla veremos algo como esto:



El archivo se reproduce pero deja libre la línea de comandos, no sin antes proporcionarnos un dato clave: el número de proceso de la operación. En esta ocasión, para detener la reproducción hay que recurrir al comando kill de esta manera:

kill -9 6214

Hemos hecho uso del comando kill con su opción -9 para matar el proceso, siendo este el nº 6214. No hace falta decir que hay que precederlo de sudo en caso de no ser administrador, ¿verdad? Como con cualquier comando que requiera derechos de súper usuario.

Si lo que queremos es reproducir un directorio entero, nos posicionamos en él y tecleamos:

mpg123 *.mp3

Los arquivos irán sonando uno tras otro en orden alfabético. Si queremos cambiar de canción pulsamos Ctrl + C, pasaremos a la siguiente y así hasta finalizar la lista. Si queremos detener la reproducción del todo pulsamos Ctrl + C dos veces seguidas. Añadiendo el modificador -q nos quitamos los metadatos de encima.

Si al reproducir un conjunto de archivos el modificador que empleamos es & para detenerla usaremos el comando top. Con esta orden se monitorizan los procesos activos en tiempo real, de modo que, tras teclearlo y pulsar enter, solo hay que buscar en la última columna de la lista el nombre del proceso mpg123 (si no lo vemos a la primera esperamos a que se actualice) y quedarnos con el número de proceso que aparece en la columna de la izquierda. Salimos pulsando la tecla q y, seguidamente, matamos el proceso con kill -9 como ya hemos explicado.

Si queremos hacer una de esas cómodas listas de reproducción, tomen nota:

ls *.mp3 > [nombre_de_lista.m3u]

Esto les generará un archivo de texto con el nombre de que hayan escrito; su contenido será la lista de archivos que hayan designado en cada caso.


Para ejecutarla tendrán que teclear (mismas condiciones para los modificadores -q y &):

mpg123 -@ [nombre_de_lista.m3u] -q &

Y a disfrutar :-)

Para ilustrar el post vamos con la banda que aparece nombrada en las capturas de pantalla, los norteamericanos Weezer y su divertido tema "Buddy Holly".