domingo, 26 de agosto de 2012

Instalando MPD y MPC para reproducir streams de audio

Una vez configurado el sonido en el RPi, necesitamos algún reproductor que nos permita cargar y reproducir las radios online. Cuando usaba Linux, solía utilizar los que venían en los reproductores gráficos como Exaile, Amarock o Rhythmbox. También existía un programa especializado, Streamtuner, que permitía elegir emisoras de radio de varias fuentes (Xiph, Shoutcast, etc.). En nuestro caso, sin embargo, es más cómodo un reproductor de consola, ya que no tendremos un monitor en el que mostrar la interfaz gráfica del reproductor, ni un ratón para interactuar con ella.

Mi idea es utilizar un pequeño mando IR como el de la imagen, o botones físicos y utilizar el Arduino para detectar las pulsaciones y comunicarlas al RPi mediante conexión serie. En el RPi, mediante un programa (en principio en Python), recoger las pulsaciones, realizar las acciones necesarias sobre el reproductor y responder al Arduino, ya sea que todo ha ido bien o que se ha producido algún error.

IMG_0403

Por este motivo estuve mirando varios reproductores de consola para Linux que fuesen compatibles con streams de audio, ya que parece que no hay nada especialmente pensado para la radio online. Algunas de las opciones que he encontrado son:

mpg123, lo recomiendan en varios sitios y al parecer su uso es tan sencillo como escribir mpg123 y la dirección del stream de audio. Tiene el inconveniente de no ser un demonio, por lo que tendríamos que utilizar algún sistema de terminal virtual como screen para las pruebas. Tampoco soporta listas de reproducción pls o m3u, aunque podríamos generar en un fichero de texto o en una pequeña base de datos las estaciones que queramos escuchar y luego invocar al reproductor con el stream correspondiente al seleccionar una. Una pequeña tabla con SQLite valdría perfectamente.

mplayer, es uno de los reproductores más populares de Linux, y también soporta stream de audio y listas de reproducción- Su funcionamiento sería muy parecido al de mpg123. Además hay tutoriales de como usarlo para escuchar radios por consola.

MOC, es un reproductor basado en NCurses, que es un sistema de interfaces en modo texto para consola de Linux. El inconveniente para nosotros es precisamente el que esté basado en NCurses, ya que no tenemos un display de 80x25, sino de 20x4 como máximo, por lo que se queda muy corto para mostrar esta interfaz. Sin embargo, al parecer también puede usarse directamente mediante comandos.

MPD y MPC, el primero es la abreviatura de Music Player Daemon y el segundo de Music Player Client. MPD es un demonio que se queda activo en segundo plano y mediante MPC podemos añadir, eliminar, reproducir pistas, etc. Un aspecto que me ha gustado bastante es que es posible obtener fácilmente la información de la canción (artista, álbum, título, etc.), por lo que es muy sencillo parsearla y enviarla al Arduino para que muestre la canción actual en el display:

IMG_0404

Por ahora he elegido MPD y MPC y he conseguido mostrar sin problemas el artista y la canción con el display (contaré como en próximos posts). Sin embargo, sigo abierto a probar otras alternativas. De hecho, si alguien quiere recomendar alguna de las demás opciones u otra que no haya contemplado aún, por favor, que lo haga en los comentarios.

No hay comentarios:

Publicar un comentario