Truculencias

Pequeñas miserias que merece la pena contar

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:

  1. 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.
  2. 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:

  1. 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:
  2. 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

  3. 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:
    1. 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.
    2. root :: el directorio raíz de la carpeta que contiene toda la música que queremos “publicar”.
    3. 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:
      1. 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:
      2. ###
        enable_password_protection = 1
        ###

      3. Crear un fichero .password en el directorio raíz indicado con root con una línea por cada par usuario/contraseña deseados, de la forma:
      4. username:password
        username2:password2
        ………:………
        usernameN:passwordN

      5. 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:
      6. sudo chown gnump3d .password
        sudo chmod 400 .password

        Nota: 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.

  4. 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:
  5. 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.

  6. Y nada… hecho lo anterior ya está el servidor instalado y configurado, solo queda arrancarlo y probarlo. Para arrancar el servidor, ejecutamos:
  7. 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

Posted by Truculencias Filed in Trasteando, GNU/Linux, Informática
4 Comments »
  •  

    November 2008
    M T W T F S S
    « May    
     12
    3456789
    10111213141516
    17181920212223
    24252627282930
  • Categories

    • Elucubraciones
    • General
    • GNU/Linux
    • Informática
    • Internet
    • Música
    • Personal
    • Proyecto Chipirón
    • Reflexiones
    • Trabajo
    • Trasteando
    • Videojuegos
  • Blogs

    • Salustiano y Ceferino, vida y hechos
    • Vento mareiro
  • Enlaces aleatorios

    • Art of diabolo
    • Diabolo tricks
    • Doom3 en Linux
    • El tratado del Marrón
    • Gnome Art
    • GNOME Files
    • Gnome-Look
    • The Voluntary Human Extinction Movement
  • Informática

    • Barrapunto
    • Eclipse.org
    • GNOME Hispano
    • Java
    • Open Source Erlang
    • Richard M. Stallman
    • Slashdot
    • The GNU Operating System
    • Ubuntu Linux
  • Música

    • AC/DC
    • Los enemigos
    • Los Suaves
    • O'funk'illo
    • Rory Gallagher
    • Siniestro total
  • Proyecto Chipirón

    • A veces soy tremendo...
    • Reductio ad absurdum
  • Archives

    • May 2008
    • April 2008
    • December 2007
    • October 2007
    • September 2007
    • June 2007
    • May 2007
    • February 2007
    • May 2006
    • April 2006
    • September 2005
    • July 2005
    • June 2005
    • May 2005
    • April 2005
  • Artículos recientes

    • Nada es lo mismo que el nihilismo
    • ¿Comida basura? Puede que si… ¡pero aún hay clases!
    • Bricoconsolas (o de como ayudar a un amigo a ejecutar backups de juegos en su PS2 Slim)
    • Porque me apetece
    • Costuras, muertos y palmareses
  • Últimos comentarios

    • Tremendo on Nada es lo mismo que el nihilismo
    • Tremendo on ¿Comida basura? Puede que si... ¡pero aún hay clases!
    • Tremendo on Bricoconsolas (o de como ayudar a un amigo a ejecutar backups de juegos en su PS2 Slim)
    • Herminia on Porque me apetece
    • Tremendo on Porque me apetece
  • Meta

    • Login
    • Entries RSS
    • Comments RSS
    • WordPress.org
Truculencias is proudly using the Simpla theme originally designed by Phu. Powered by WordPress