servicios:radio-por-wifi

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
Última revisiónAmbos lados, revisión siguiente
servicios:radio-por-wifi [2017/07/22 13:00] strysgservicios:radio-por-wifi [2018/10/28 10:31] – icecast2 actualización strysg
Línea 1: Línea 1:
 Lo que nosotros llamamos radio por wifi es en realidad un servicio de [[https://es.wikipedia.org/wiki/Streaming|streaming de audio]], este es un pequeño tutorial basado en experiencias al montar nodos. Lo que nosotros llamamos radio por wifi es en realidad un servicio de [[https://es.wikipedia.org/wiki/Streaming|streaming de audio]], este es un pequeño tutorial basado en experiencias al montar nodos.
  
-Primero vamos a usar el servidor [[http://icecast.org/|icecast2]] que se encarga retransmitir //streams// multimedia (en este caso Ogg, opus o mp3) a los clientes o usuarios que se conecten al servicio.+Primero vamos a usar el servidor [[http://icecast.org/|icecast2]] que se encarga retransmitir //streams// multimedia (en este caso Ogg) a los clientes o usuarios que se conecten al servicio.
  
 Sin embargo, icecast2 **no** es el programa que reproduce el audio, sólo se encarga de redistribuirlo. El programa que reproduce el audio, icecast lo llama cliente y ese programa cliente es [[http://icecast.org/ices/|ices]] que se encarga de generar los //streams// de audio a partir de archivos de música. Sin embargo, icecast2 **no** es el programa que reproduce el audio, sólo se encarga de redistribuirlo. El programa que reproduce el audio, icecast lo llama cliente y ese programa cliente es [[http://icecast.org/ices/|ices]] que se encarga de generar los //streams// de audio a partir de archivos de música.
Línea 7: Línea 7:
 También existe [[http://icecast.org/ezstream/|ezstream]] FIXME (agregar uso de ezstream) También existe [[http://icecast.org/ezstream/|ezstream]] FIXME (agregar uso de ezstream)
  
-==== Instalando y configurando icecast2 ====+==== Instalando y configurando icecast2 =====
  
 Siguiendo la guía http://www.icecast.org/docs/icecast-trunk/basic_setup/ podemos resumir en: Siguiendo la guía http://www.icecast.org/docs/icecast-trunk/basic_setup/ podemos resumir en:
  
-1. Instalar icecast2, que en una distribución basada en debian bastará con: ''sudo apt install icecast2''+1. Instalar icecast2, que en una distribución basada en debian bastará con: ''sudo apt install icecast2''.
  
 2. En el archivo ''/etc/icecast2/icecast.xml'' existen varias secciones pero para una configuración básica bastará con modificar: 2. En el archivo ''/etc/icecast2/icecast.xml'' existen varias secciones pero para una configuración básica bastará con modificar:
Línea 17: Línea 17:
  
 <hostname>localhost</hostname>  <hostname>localhost</hostname> 
-<source-password>password-para-programas-clientes-(para nosotros ices)</source-password>+<source-password>password-para-programas-clientes</source-password>
 <admin-passwrod>Password-para-el-administrador-web-de-icecast2</admin-password> <admin-passwrod>Password-para-el-administrador-web-de-icecast2</admin-password>
 +<listen-socket>
 +    <port>8299</port> 
 +</listen-socket>
  
 </code> </code>
  
-TODO continuar +:!: En versiones nuevas de icecast2 además de editar el archivo ''icecast2.xml'', se debe editar el archivo ''/etc/default/icecast2'' y cambiar la línea **ENABLE=true**. 
 +Con esas opciones modificadas se ha terminado con icecast2.
  
-=== Más referencias ===+===== Instalando y configurando ices =====
  
-* http://www.icecast.org/docs/icecast-trunk/basic_setup/+Ahora queda instalar y preparar el programa ices, la ventaja de mantener ices y icecast2 separados es que icecast2 puede distribuir a los clientes varios streams ejecutándose en esta u otra computadora. 
 + 
 +Para mantener las cosas ordenadas podemos primero seleccionar los archivos .ogg de música de audio que se escucharán en nuestra radio por wifi, para este ejemplo usaremos la carpeta ''/home/alguien/musica/'' 
 + 
 +1. Instalar ices en una distribución basada en debian basta con ''sudo apt install ices2'' 
 + 
 +2. Debemos crear un archivo de configuración, podemos copiar un ejemplo con: ''cp /usr/share/doc/ices2/examples/ices-playlist.xml /home/alguien/musica'' 
 + 
 +3. Modificamos el archivo ''/home/alguien/alguien/musica/ices-playlist.xml'' modificando: 
 + 
 +<code xml> 
 +<!-- el archivo playlist.txt deberia contener la lista de archivos a reproducir --> 
 +<param name="file">playlist.txt</param> 
 +<!-- Esto hara que las canciones toquen en orden aleatorio, 0 para desactivarlo --> 
 +<param name="random">1</param> 
 +<!-- reiniciar la reproduccion cuando se termine los archivos en la lista --> 
 +<param name="restart-after-reread">1</param> 
 +<Server> 
 +  <!-- Host donde esta el servidor icecast2 --> 
 +  <Hostname>localhost</Hostname> 
 +  <!-- Este es el mismo puerto que se ha configurado para icecast2 --> 
 +  <Port>8299 </Port> 
 +  <!-- El password especificado para acceder a icecast2 --> 
 +  <Password>password-para-programas-clientes</Password> 
 +</Server> 
 +<!-- Punto de montaje o la direccion desde la cual se podra acceder al stream --> 
 + <Mountpoint>/super_radio</Mountpoint> 
 + 
 +</code> 
 + 
 +4. Ahora debemos crear el archivo ''playlist.txt'' que debería contener la lista de archivos .ogg a reproducir, se puede crear con: 
 + 
 +<code bash> 
 +find /home/alguien/musica/ | grep ".ogg" > playlist.txt 
 +</code> 
 + 
 +5. Probar la conexión entre icecast2 y ices2: 
 + 
 +<code bash> 
 +sudo service icecast2 restart 
 +sudo ices2 /home/alguien/musica/ices-playlist.xml 
 +</code> 
 + 
 +Con esto, si ingresamos desde un navegador web a ''http://localhost:8299/super_radio'' **deberíamos poder escuchar una canción**. Pero es probable que el servicio se detenga y para evitarlo tendremos que seguir el siguiente paso. 
 + 
 +<WRAP center round info 70%> 
 +Si queremos integrar el servicio de radio por wifi en una página web, bastaría poner un enlace hacia el host:puerto/punto_de_montaje. Por ejemplo si nuestro nodo se llamaría "tantawawa" sería ''http://radio.tantawawa.lor:8299/super_radio'' 
 +</WRAP> 
 + 
 + 
 +===== Automatizando el inicio ===== 
 + 
 +=== Usando systemd === 
 + 
 +Creando por ejemplo: /etc/systemd/system/ices2.service 
 + 
 +<code> 
 +[Unit] 
 +Description=ices2 deamon 
 +# la siguiente linea asegura que primero se inicie icecast2 
 +After=icecast2.service 
 + 
 +[Service] 
 +User=www-data 
 +Group=www-data 
 +WorkingDirectory=/usr/bin/ices2 
 +ExecStart=ices2 /home/alguien/musica/ices-playlist.xml 
 + 
 +[Install] 
 +WantedBy=multi-user.target 
 +</code> 
 + 
 +Luego probarlo con: 
 +<code bash> 
 +sudo systemctl daemon-reload 
 +sudo systemctl start ices2.service 
 +# si funciona se habilita el servicio para que se ejecute al inicio del sistema con 
 +sudo systemctl enable ices2.service 
 +</code> 
 + 
 +=== Usando script de inicio=== 
 + 
 +Primero seguramente deberíamos modificar el archivo ''/home/alguien/musica/ices-playlist.xml'' en la línea: 
 +<code xml> 
 +<Execution> 
 +    <Background>1</Background> 
 +  </Execution> 
 +</code> 
 +Luego el script por ejemplo en ''/etc/init.d/ices2.sh'' 
 + 
 +<code bash> 
 +cd /home/alguien/musica 
 +# comprobando que se haya iniciado el servicio icecast2 
 +while ! ps -axu | grep icecast2 | grep -v "grep" 
 +do  
 +  sleep 1 
 +done 
 + 
 +ices2 ices-playlist.xml 
 + 
 +exit 0 
 +</code> 
 + 
 +Luego de probarlo, se debe agregar como script de inicio. 
 + 
 +==== Más referencias ==== 
 + 
 +  * http://www.icecast.org/docs/icecast-trunk/basic_setup
 +  * https://lavidaestux.wordpress.com/2012/02/13/transmitir-radio-en-vivo-con-icecast2-desde-linux-ubuntu/
  • servicios/radio-por-wifi.txt
  • Última modificación: 2018/10/28 11:30
  • por strysg