Cómo gestionar butt, radioboss y obs en icecast

Cómo gestionar Butt, RadioBOSS y OBS en Icecast

 

Hoy veremos cómo gestionar Butt, RadioBOSS y OBS en Icecast.
Múltiples encoders en Icecast nos permiten flexibilizar la emisión de La MIX Radio y Radio OnE. En nuestro entorno de trabajo, no dependemos de una sola herramienta de envío. Alternamos entre la automatización profesional, las sesiones en vivo y las transmisiones híbridas con video. Todo esto ocurre dentro de nuestro homelab en Proxmox, específicamente en la VM 111 donde reside el servidor de streaming. La capacidad de conectar diferentes fuentes sin tirar abajo el servidor es fundamental para mantener la continuidad sonora que nuestros oyentes esperan.

El desafío de coordinar múltiples encoders en Icecast

Cuando operamos una radio 24/7, surge una necesidad clara: la redundancia y la versatilidad. No siempre es práctico usar el mismo software para cada situación. RadioBOSS es imbatible para la programación automática y los playlists complejos. Sin embargo, para un set de Deep House en vivo, preferimos la ligereza de Butt (Broadcast Using This Tool). Cuando integramos contenido visual, OBS se convierte en nuestra herramienta principal para enviar el audio al servidor.

El problema aparece cuando intentamos conectar estos programas al mismo tiempo. Si configuramos todos para enviar al mismo «mount point» o punto de montaje, el servidor Icecast suele rechazar la conexión más reciente o desconectar la anterior. Esto provoca baches de silencio o errores de conexión en el reproductor del oyente. Sin una gestión adecuada, el flujo de trabajo se vuelve caótico. Pasamos más tiempo peleando con los passwords y los puertos que creando contenido para nuestra comunidad.

Si no resolvemos esta arquitectura, nos enfrentamos a cortes abruptos. Un error de configuración en un encoder puede tumbar el flujo de audio general. Además, la falta de organización en los puntos de montaje dificulta el monitoreo técnico. No sabríamos con certeza qué encoder está alimentando el stream principal en un momento dado.

Requisitos previos para la configuración

Para implementar este sistema, necesitamos una infraestructura estable. En nuestro caso, utilizamos un servidor Debian corriendo en una máquina virtual de Proxmox. El software base es Icecast2, configurado para manejar múltiples conexiones concurrentes. Es fundamental tener acceso a la terminal via SSH para editar los archivos de configuración del sistema.

En cuanto al software de cliente, debemos tener instalados y actualizados los siguientes programas:

  • RadioBOSS (para la automatización diaria).
  • Butt (para emisiones en vivo desde la consola).
  • OBS Studio (para streaming de audio vinculado a video).
  • Un navegador web para acceder al panel de administración de Icecast en el puerto 8000.

También es necesario definir una estrategia de passwords. No recomendamos usar la misma contraseña para todos los encoders por razones de seguridad y control.

Configuración técnica para múltiples encoders en Icecast

La clave para gestionar múltiples encoders en Icecast reside en la definición de los «mount points». Un punto de montaje es esencialmente una ruta en el servidor donde el encoder deposita el audio y el oyente lo recoge. Para que Butt, RadioBOSS y OBS convivan, debemos configurar Icecast para que acepte múltiples fuentes simultáneamente.

Primero, accedemos al archivo de configuración de Icecast en nuestra VM 111. Usamos el editor nano para modificar los parámetros de autenticación y los montajes predefinidos.

sudo nano /etc/icecast2/icecast.xml

Dentro del archivo, nos aseguramos de que la sección de autenticación tenga passwords distintos para cada rol. Esto nos permite identificar quién está transmitiendo. Buscamos la sección de <authentication> y configuramos lo siguiente:

<authentication>
    <source-password>passradioboss123</source-password>
    <admin-password>passadminsecure</admin-password>
    <relay-password>passrelay456</relay-password>
</authentication>

Para evitar que un encoder pise al otro, creamos puntos de montaje específicos. Aunque Icecast permite crear montajes dinámicamente, definirlos en el XML nos da mayor control. Añadimos los siguientes bloques en la sección de <mounts>:

<mounts>
    <mount name="automation" mount="/auto">
        <description>Flujo de RadioBOSS</description>
    </mount>
    <mount name="live" mount="/live">
        <description>Flujo de Butt Live</description>
    </mount>
    <mount name="visual" mount="/obs">
        <description>Flujo de OBS Studio</description>
    </mount>
</mounts>

Una vez guardado el archivo, reiniciamos el servicio para aplicar los cambios:

sudo systemctl restart icecast2

Ahora configuramos cada aplicación.

Configuración de RadioBOSS

En RadioBOSS, vamos a Opciones > Transmisión. Seleccionamos el tipo de servidor Icecast. Ingresamos la IP de nuestra VM 111, el puerto 8000 y, lo más importante, el punto de montaje /auto y su contraseña correspondiente.

Configuración de Butt

En Butt, creamos un nuevo servidor. Definimos la IP, el puerto 8000, la contraseña de fuente y el punto de montaje /live. Esto nos permite iniciar la transmisión en vivo sin desconectar la automatización de RadioBOSS.

Configuración de OBS Studio

En OBS, vamos a Ajustes > Emisión. Seleccionamos «Personalizado». En la URL ponemos icecast://IP_SERVIDOR:8000/obs. Ingresamos la contraseña configurada. De este modo, el audio de OBS viaja por su propio carril técnico.

La clave para gestionar múltiples encoders en Icecast es la correcta asignación de mount points independientes. Esto evita el conflicto de «fuente ya existente» y permite una transición fluida entre programas.

Para que el oyente escuche el contenido correcto, utilizamos un script simple en nuestro servidor nginx que redirige el tráfico del punto de montaje principal hacia el que esté activo. Así, el público siempre accede a lamixradio.com/stream, mientras nosotros movemos el flujo interno entre /auto, /live y /obs.

Errores comunes al usar múltiples encoders en Icecast

Durante la implementación de múltiples encoders en Icecast, hemos detectado tres fallos recurrentes que pueden detener la emisión.

El primero es el conflicto de puertos. A veces, el firewall de Debian o las reglas de Proxmox bloquean el puerto 8000. La solución es abrir el puerto mediante:

ufw allow 8000/tcp

El segundo error es intentar usar el mismo punto de montaje con diferentes passwords. Icecast prioriza la conexión establecida. Si intentamos entrar con Butt en /auto mientras RadioBOSS está activo, la conexión será rechazada. La solución es respetar estrictamente la asignación de rutas: /auto para automatización, /live para vivo y /obs para video.

El tercer problema es la desincronización del bitrate. Si RadioBOSS envía a 128kbps y Butt envía a 320kbps al mismo servidor, algunos reproductores antiguos de los oyentes pueden experimentar saltos o cortes al cambiar de fuente. Recomendamos estandarizar todos los encoders a la misma frecuencia de muestreo (44.1 kHz) y el mismo bitrate para una experiencia transparente.

Resultado final y verificación

Para verificar que todo funciona, accedemos al panel de administración de Icecast escribiendo en el navegador http://IP_SERVIDOR:8000/admin/. Ingresamos el password de administrador configurado previamente. En la pantalla principal, deberíamos ver tres entradas activas en la sección de «Mounts».

  • El montaje /auto debe mostrar el flujo constante de RadioBOSS.
  • El montaje /live debe activarse solo cuando iniciamos la sesión en Butt.
  • El montaje /obs debe reflejar la actividad de OBS Studio.

Si vemos los tres flujos corriendo simultáneamente sin errores de «Connection Refused», hemos logrado coordinar múltiples encoders en Icecast con éxito. Podemos probar la escucha individual de cada uno abriendo tres pestañas en el navegador con las rutas correspondientes. Esto nos asegura que la infraestructura es robusta y está lista para cualquier imprevisto durante la emisión.

Conclusión y siguiente paso

Implementar múltiples encoders en Icecast nos ha permitido profesionalizar la salida de audio de La MIX Radio. Ya no dependemos de un único software ni tememos que un error de conexión silencie la radio. Tenemos el control total sobre qué fuente alimenta el stream en cada momento, optimizando la calidad según la herramienta utilizada.

El siguiente paso lógico en nuestra evolución técnica es automatizar el cambio de estos puntos de montaje. Estamos trabajando en un script de Python integrado con n8n que, mediante un comando de Telegram, pueda cambiar la redirección de nginx. De esta forma, podremos pasar de la automatización al vivo con un solo clic desde el teléfono móvil.

Compartir

“Post relacionados”

🤖
Asistente de Fabio Martínez
En línea
¡Hola! 👋 Soy el asistente virtual de
Fabio Martínez
Técnico de Radio · Dev Web · Servidores

¿Cómo te llamás?