Instalando un servidor de streaming de audio bajo demanda en Linux
26 dAmerica/New_York April, 2006
Pues resulta que hoy hablando con un compañero (hola Andrés) me di cuenta de que había alguien más en el mundo que recientemente se había encontrado con una “necesidad” un poco peculiar: querer escuchar la música que tiene en su ordenador de casa desde cualquier sitio por medio de una conexión a internet. Y el caso es que yo hace un mes o dos estuve rallado con la misma problemática por una cuestión clara: (1) yo con música trabajo muchísimo mejor y (2) me había quedado sin portátil temporalmente, por lo que tuve que ingeniarmelas para poder escuchar música desde el ordenador de casa de alguna forma cómoda.
El caso es que buscando encontré dos posibles soluciones a mi “problema” de escucha remota:
- Montar una especie de “radio IP” que emitiese mi música por un puerto determinado al que conectarme con mplayer, o un programa similar. El problema de esta solución era que no podía decidir que escuchar en cada momento , ya que era en plan radio, y eso no parecía demasiado interesante.
- Montar un servidor de streaming de audio bajo demanda mediante el cual poder solicitar la música que yo quisiese en el momento que quisiese… para que fuese realmente como tener la música allá donde estuviese, solo que con la carácterística de que solo necesitaría un reproductor (mplayer, por ejemplo) y una conexión de banda ancha…
Y nada… buscando por ahí encontré dos programas que satisfacían las dos opciones: icecast, para montar la “radio IP”, y gnump3d, para la opción del servidor de streaming. Pero evidentemente, la segunda opción parecía la más interesante… así que me puse a ello y monté el servidor de marras, que resultó ser más útil y más cómodo de usar de lo que pensaba yo en un principio, por lo que no lo dudé ni un momento y me puse “manos a la obra”.
Pues bien, después de hablar hoy con Andrés estuve pensando y decidí que iba a compartir la experiencia con el mundo en mi blog, que pa algo lo tengo, ¿no?. Así que aqui está mi guia de como instalar un servidor de estas carácterísticas utilizando software libre, por supuesto.
Bueno, antes de nada comentar que yo utilicé la distribución de GNU/Linux Ubuntu 5.10 “Breezy Badger”, pero en principio sería exactamente lo mismo para cualquier otra distribución, lo único que cambiaría quizás es la instalación de los paquetes necesarios… aunque si la distribución usada es Debian o alguna derivada (Ubuntu, Mepis…) no debería dar ningún problema ya que apt-get se encarga de todo por nosotros.
Pues ahí va la guía en cuestión, aunque la verdad es que no es nada complicado instalarlo, por lo menos en Ubuntu:
- Instalar el servidor de streaming. El servidor se llama gnump3d y está accesible en los repositorios de Ubuntu. Para instalarlo lo único que hay que hacer es escribir:
- Configurar gnump3d. Para ello editamos el fichero /etc/gnump3d/gnump3.conf, en donde en principio solo tendremos que fijarnos en los valores de los siguientes campos:
port:: el puerto donde escuchará nuestro servidor de streaming, tanto para servirnos las música como para ofrecernos una aplicación web cojonuda con la que navegar por toda la música exportada por dicho servidor.root:: el directorio raíz de la carpeta que contiene toda la música que queremos “publicar”.enable_password_protection:: cada uno es cada uno… y cada dos una piragüa, pero yo activaría esta opción (que por defecto viene deshabilitada) para evitar “intrusiones no deseadas” en nuestro servidor. Para que esta opción funcione correctamente son necesarios varios pasos:- En la sección
AUTHORISATION OPTIONS, descomentar la línea donde está mencionada (en el fichero /etc/gnump3d/gnump3.conf) y poner su valor a 1: - Crear un fichero .password en el directorio raíz indicado con
rootcon una línea por cada par usuario/contraseña deseados, de la forma: - Asignar el fichero creado al usuario gnump3d (creado automáticamente al instalar el servidor) y cambiar sus permisos para que sólo él lo pueda leer:
###
enable_password_protection = 1
###username:password
username2:password2
………:………
usernameN:passwordNsudo chown gnump3d .password
sudo chmod 400 .passwordNota: el usuario al que asignamos la propiedad y el acceso del fichero es gnump3d porque es el que viene configurado por defecto, por lo que es lo más cómodo. No obstante, cambiando en /etc/gnump3d/gnump3.conf el valor del parámetro
user, y teniendo en cuenta que el usuario indicado tiene que existir en el sistema, podríamos poner cualquier otro, evidentemente.- En la sección
- Antes de arrancar por primera vez el servidor, es necesario indexar todos los ficheros de audio (Mp3 y Ogg) contenidos dentro (recursivamente) de la carpeta indicada con este parámetro (en mi caso, /almacen/Mp3), para lo que ejecutaremos el siguiente comando:
- Y nada… hecho lo anterior ya está el servidor instalado y configurado, solo queda arrancarlo y probarlo. Para arrancar el servidor, ejecutamos:
sudo apt-get update
sudo apt-get install gnump3d
Por si acaso a alguien no tiene los repositorios adecuados, aquí dejo el contenido del fichero sources.list que estoy usando yo, y que funciona perfectamente para este cometido:
## Breezy
deb http://archive.ubuntu.com/ubuntu breezy main restricted
deb http://archive.ubuntu.com/ubuntu breezy universe multiverse
deb-src http://archive.ubuntu.com/ubuntu breezy main restricted
deb-src http://archive.ubuntu.com/ubuntu breezy universe multiverse
## Breezy updates
deb http://archive.ubuntu.com/ubuntu breezy-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu breezy-updates main restricted
## Breezy security
deb http://security.ubuntu.com/ubuntu breezy-security main restricted
deb http://security.ubuntu.com/ubuntu breezy-security universe multiverse
deb-src http://security.ubuntu.com/ubuntu breezy-security main restricted
deb-src http://security.ubuntu.com/ubuntu breezy-security universe multiverse
## Breezy extras
deb http://ubuntu-backports.mirrormax.net/ breezy-extras main universe multiverse restricted
## Breezy backports
# deb http://archive.ubuntu.com/ubuntu breezy-backports main restricted universe multiverse
sudo gnump3d-index
Este paso realmente no es imprescindible ya que, si intentamos arrancar el servidor sin haber indexado antes los ficheros, se llamará automáticamente a gnump3d-index la primera vez que lo arranquemos. Sin embargo, a mi me parece más claro hacerlo paso a paso… cuestión de gustos, supongo.
sudo /etc/init.d/gnump3d start
Y para probarlo lo único que tendremos que hacer es pinchar en el enlace correspondiente y especificar en “abrir con” (o lo que sea) el reproductor que queremos usar. Otra opción, si usamos mplayer, es hacer la llamada desde línea de comandos. Para ello copiamos la dirección de la canción o carpeta que queremos reproducir (enlace “Play all”, si es una carpeta, o “Download” si es una canción) y en una terminal escribimos:
mplayer -cache 512 -user USUARIO -passwd PASSWORD URL
…donde USUARIO y PASSWORD son válidos dentro del fichero .password y URL es la dirección copiada del navegador (si usamos firefox: botón derecho + “Copiar la ruta del enlace”). La opción -cache 512 indica que usemos una caché de 512 KB, muy útil para evitar saltos en la reproducción cuando estamos escuchando música remotamente… a mi con 512 KB me llegó para mis propósitos de escuchar la música desde mi casa (ADSL de 1Mb/256Kb) aunque cada uno que le ponga lo que le plazca.
Y bueno, con esto creo que está todo… si alguien detecta algo que no sea correcto o que no esté bien explicado, que no dude en poner un comentario y yo encantado de hacer la corrección pertinente. Yo por el momento me despido, y animo a todo el que lea este blog a probar gnump3d, porque realmente está muy bien, y a echar un vistazo con más detenimiento al fichero de configuración, ya que ofrece muchas más opciones interesantes que no fueron comentadas en este post (listas aleatorias, servir de feed para icecast, permisos para rangos de IPs…).
Un saludo y hasta la próxima… ah, por cierto, mientras escribía este post hice la instalación de cero en mi portátil, así que en principio debería funcionar lo que pongo, ya que yo estoy ahora mismo escuchando mi música por medio de este pedazo de servidor de streaming… aunque casi que para escuchar la música localmente no hace falta tanta historia, jeje
¡Soy “papá”!
22 dAmerica/New_York April, 2006
No, no os asustéis… de momento no hay marioliños correteando por el mundo y poniendo en peligro la integridad física y la salud mental de muchas personas, no… lo que pasó es que por fin, después de un día algo preocupante, mi gata (bueno… más bien una de mis gatas) acaba de parir 4 gatitos más rikiños…
Y es que cuando digo lo de que andaba preocupado no lo digo por nada… el caso es que hoy cuando salía de casa para ir a trabajar, a eso de las 7:30 am más o menos, me encontré a la Pitufa que ya había parido al primer gato, con lo que me fuí todo contento ya para el trabajo. Pero el problema es que cuando llegué a casa por la tarde, a eso de las 16:30 - 17:00 aproximadamente, el percal era que la gata no había parido a ninguno más, con lo que me empecé a preocupar por si le pasaba como a otra gata que tenemos, que en su último parto se le “atrancaron” los gatos y se murieron antes de nacer… y luego para sacarlos hubo que llevarla al veterinario y hacerle una “cesárea”….
Pero no. Al final resultó que todo fue bien y que la gata necesitaba su tiempo porque, aunque cuando me volví a ir de casa (a eso de las 19:00) la gata solo había parido un gato, al llegar por la noche unas 5 horas más tarde ya me la encontré dando de mamar a 4 gatos más chulos que todo.
Y nada, solo eso… que me apetecía contarlo y poner aquí algunas fotos para tener un recuerdo de este momento.
The (Real) Incredible Machine
21 dAmerica/New_York April, 2006
Esta mañana Jose Riguera, durante el “duro” inicio de la jornada laboral, me ha enseñado unos vídeos que no tienen desperdicio… los vídeos en cuestión están relacionados con un juego al que jugaba yo (y seguramente muchísima gente que lea esto) de pequeño, llamado “T.I.M. - The Incredible Machine”, y que consistía en montar máquinas extrañas con objetos cotidianos (un balón de baloncesto, un ventilador, un loro…) para conseguir objetivos de lo más psicodélicos…
El caso es que ahora parece ser que alguna gente a decidido montar máquinas como aquellas pero reales… tan reales y tan complejas que ríete tú del anuncio del Honda Accord… así que aquí dejo el enlace de Google Video para el que se quiera deleitar durante 12 minutos que dura el compendio de inventos increíbles.
Y aquí no queda la cosa, porque parece ser que un italiano, después de ver probablemente los mismos vídeos que comento en el párrafo anterior, decidió montar su propia “máquina increíble” grabando todo el proceso desde las elucubraciones iniciales hasta el final de su corto proyecto… pero está claro que no le salió tan bien como a los otros.
Que lo disfrutes.
Frases absurdas
18 dAmerica/New_York April, 2006
A los violentos… habría que matarlos a todos.Un pacifista
El que va más rápido que yo es un salvaje y el que va más despacio es un gilipollas.
Un conductor paciente
Si comes bien mañana, no morirás hoy.
Un visionario
Las aceitunas tienen aceite, pero solo UN aceite cada aceit-UNA.
Un servidor
Nuevo hosting (gratuíto) para este blog
17 dAmerica/New_York April, 2006
Como el ávido lector se habrá dado cuenta si ha llegado hasta aquí siguiendo la redirección pertinente :P, la dirección de este blog es ligeramente diferente de la que lucía hasta hace casi unas horas. Este cambio fue debido a los continuos problemas que actualmente presenta el hosting gratuito de http://www.f2o.org, en donde anteriormente se alojaba esta bitácora… y el caso es que gracias a un amigo descubrí este servicio de hosting gratuíto que realmente está muy bien, por lo menos por el momento: http://www.pandela.com.
El caso es que no meten publicidad, te ofrecen unas características completísimas (incluso más completas que en f2o) y todo gratis… incluso tienen tres planes a escoger según si prefieres más capacidad o mayor tráfico posible en tu web. Mi única duda: a ver cuanto dura… y si va a ser siempre gratis (o por lo menos para los que nos hagamos cuentas ahora), porque eso, por lo menos por el momento, para mí es un requisito imprescindible. De momento la única pega que le encontré es que a veces a algún error momentaneo de problemas accediendo a la BD (pero que sueles darle a recargar y ya tira) y que no se pueden subir archivos de más de 1 MB al servidor… aunque bueno, esto último para mí no es mucho problema porque no pienso subir ficheros grandes, pero dependiendo del uso que se le quiera dar si puede llegar a serlo.
Bueno, pues eso… ahí queda el dato. Merece la pena echarle un vistazo.
PD: Al contrario que en f2o, en pandela no hay periodos de admisión de solicitudes, y su aceptación es automática, por lo que puedes tener tu espacio web funcionando en 5 minutos sin tener que dar mayores explicaciones, lo cual está bastante bien.
Sigo vivo…
15 dAmerica/New_York April, 2006
Bueno, aquí estoy 6 meses después retomando este blog, que tuve abandonado más tiempo del que debiera por la gran carga de curro a la que me ví sometido durante todo este tiempo, pero al fin he encontrado un hueco para poder volver a escribir algo y, de paso, remodelar mi bitácora un poco. Esto último de la remodelación la verdad que ya lo venía pensando desde hacia tiempo, pero nunca encontraba el hueco adecuado… sin embargo estas vacaciones he decidido tomármelas para “descansar” de mi ritmo habitual de trabajo, y he encontrado en ellas (concretamente un día que no tenía nada mejor que hacer :P) el momento idóneo para reestructurar este blog, con la sana intención de volver a publicar en él con una cierta frecuencia… porque esta claro que escribir un post cada 6 meses tampoco es plan.Y bueno, por hoy creo que no escribiré nada más… que estoy algo cansao y mañana me espera un “duro” día de viaje por el corazón de Galicia, jeje… ¡que non vai ser todo traballar! Me despido pues esperando que al ávido lector le guste la nueva imagen de mi pequeño “recuncho en la red en que espero escribir abundantemente durante los próximos meses, contando aquellas cosas que me preocupen, me intriguen, me gusten o me disgusten… o simplemente escribir por el simple placer de hacerlo y contar cosas al mundo, que siempre está bien.
Vale chao.
Mario.