Radio por internet usando icecast y butt en un servidor linux
Índice
Introducción
En esta guía, aprenderemos a configurar nuestra propia y simple estación de radio por Internet utilizando Icecast como servidor de streaming en Linux y BUTT (Broadcast Using This Tool) como cliente. Esta combinación nos permite transmitir audio en vivo o pregrabado a través de Internet, permitiendo que oyentes de todo el mundo sintonicen nuestra estación.
¿Qué es Icecast?
Icecast es un servidor de streaming de medios gratuito y de código abierto que soporta formatos de audio como Ogg Vorbis, MP3 y AAC. Es altamente configurable y puede manejar múltiples streams simultáneos, lo que lo hace ideal para estaciones de radio en línea.
¿Qué es BUTT?
BUTT es una herramienta de streaming multiplataforma fácil de usar. Funciona como un cliente para servidores Icecast y Shoutcast, permitiendo transmitir audio desde tu computadora al servidor de streaming.
Visión general del proyecto
En este tutorial, configuraremos:
- Un servidor Icecast en Debian Linux
- BUTT en Windows para transmitir audio al servidor Icecast
- VB-Cable para enrutar audio de diferentes fuentes a BUTT
foobar2000 para reproducir nuestro stream
1. Instalación y configuración de Icecast en Debian
Instalación de Icecast
Primero, actualizaremos los repositorios e instalaremos Icecast:
sudo apt update
sudo apt install icecast2
Durante la instalación, se te preguntará si deseas configurar Icecast2. Selecciona “No” por ahora, ya que configuraremos manualmente el archivo de configuración.
Configuración de Icecast
Editaremos el archivo de configuración de Icecast:
sudo nano /etc/icecast2/icecast.xml
Busca y modifica las siguientes secciones:
<authentication>
<source-password>hackme</source-password>
<relay-password>hackme</relay-password>
<admin-user>admin</admin-user>
<admin-password>hackme</admin-password>
</authentication>
<hostname>localhost</hostname>
Cambia las contraseñas por unas seguras y reemplaza “localhost” por la dirección IP pública de tu servidor o un nombre de dominio si tienes uno.
Configuración del firewall UFW
Para permitir conexiones al puerto 8000 de Icecast, abriremos este puerto en UFW:
sudo ufw allow 8000/tcp
sudo ufw status
Deberías ver una línea indicando que el puerto 8000 está abierto para conexiones TCP.
Iniciar Icecast
Ahora podemos iniciar el servicio Icecast:
sudo systemctl start icecast2
Para verificar que Icecast está funcionando, abre un navegador y visita http://tu_ip_o_dominio:8000
. Deberías ver la página de estado de Icecast.
2. Configuración de audio en Windows
Para enrutar el audio de diferentes fuentes (como VLC y un micrófono) a BUTT, utilizaremos VB-Cable. Esta herramienta crea dispositivos de audio virtuales que nos permiten redirigir el sonido entre aplicaciones.
Instalación de VB-Cable
- Descarga VB-Cable desde el sitio oficial.
- Descomprime el archivo descargado.
- Ejecuta el archivo
VBCABLE_Setup_x64.exe
como administrador. - Sigue las instrucciones del instalador.
Reinicia tu computadora para asegurar que los controladores se carguen correctamente.
Configuración de enrutamiento de audio
Una vez instalado VB-Cable, tendremos dos nuevos dispositivos de audio:
- CABLE Input (VB-Audio Virtual Cable)
- CABLE Output (VB-Audio Virtual Cable)
Configuraremos VLC para usar CABLE Input como salida, y BUTT para usar CABLE Output como entrada.
Configuración de VLC:
- Abre VLC
- Ve a Herramientas > Preferencias
- En la parte inferior, selecciona “Sencillo” bajo “Mostrar ajustes”
- Navega a Audio > Salida
- En el menú desplegable “Dispositivo”, selecciona “CABLE Input (VB-Audio Virtual Cable)”
Guarda los cambios y reinicia VLC
Configuración del micrófono:
Haz clic derecho en el icono de altavoz en la barra de tareas
Selecciona “Abrir configuración de sonido”
En la sección “Entrada”, selecciona tu micrófono como dispositivo predeterminado
Ahora tenemos VLC enviando audio a un cable virtual y el micrófono configurado. En la siguiente sección, configuraremos BUTT para mezclar estas fuentes de audio.
3. Instalación y configuración de BUTT
BUTT nos permitirá mezclar nuestras fuentes de audio y transmitir al servidor Icecast.
Instalación de BUTT
- Descarga BUTT desde el sitio oficial.
Ejecuta el instalador descargado y sigue las instrucciones.
Configuración de BUTT
Abre BUTT
Haz clic en el botón “Settings”
Configuración de audio:
En la pestaña “Audio”, configura lo siguiente:
- Dispositivo de audio principal: CABLE Output (VB-Audio Virtual Cable)
- Dispositivo de audio secundario: Tu micrófono
- Tasa de muestreo: 44100
- Canales: Estéreo
En “Streaming”, selecciona:
- Codec: MP3
Bitrate: 128k (o el que prefieras)
Configuración del servidor:
Ve a la pestaña “Server”
Haz clic en “Add” para agregar un nuevo servidor
Configura los siguientes campos:
- Name: Dale un nombre a tu servidor
- Type: Icecast
- Address: La dirección IP o dominio de tu servidor Icecast
- Port: 8000
- Password: La contraseña que configuraste en el archivo icecast.xml
- Mountpoint: /stream (o el que prefieras)
Haz clic en “Add” para guardar la configuración del servidor
Ahora BUTT está configurado para transmitir a tu servidor Icecast, mezclando el audio de VLC (a través de VB-Cable) y tu micrófono.
4. Transmisión de prueba
Ahora que tenemos todo configurado, es hora de realizar una transmisión de prueba.
Iniciar la transmisión desde BUTT
- Abre VLC y reproduce alguna música. El audio debería estar siendo enviado a VB-Cable.
- Abre BUTT si no lo has hecho ya.
- En la ventana principal de BUTT, verás un medidor VU que muestra el nivel de audio entrante. Deberías ver actividad en este medidor cuando VLC esté reproduciendo música.
- Para comenzar la transmisión, simplemente haz clic en el botón “Play” en la interfaz principal de BUTT.
Si todo está correctamente configurado, verás un mensaje en la ventana de registro de BUTT indicando que se ha conectado al servidor Icecast.
Verificar la transmisión en Icecast
Abre un navegador web y visita la página de estado de Icecast (http://tu_ip_o_dominio:8000).
Deberías ver tu stream listado en la página. Esto confirma que Icecast está recibiendo tu transmisión correctamente.
5. Reproducción con foobar2000
Para escuchar nuestra transmisión, usaremos foobar2000, un reproductor de audio altamente personalizable.
Instalación de foobar2000
- Descarga foobar2000 desde el sitio oficial.
Ejecuta el instalador y sigue las instrucciones para completar la instalación.
Configuración y reproducción del stream
Abre foobar2000.
Ve a “Archivo” > “Abrir” > “Abrir ubicación”.
En el cuadro de diálogo que aparece, ingresa la URL de tu stream. Debería ser algo como:
http://tu_ip_o_dominio:8000/stream
(reemplaza “stream” con el mountpoint que configuraste en BUTT).Haz clic en “Aceptar”. foobar2000 debería comenzar a reproducir tu stream.
Si escuchas tu música y/o voz a través de foobar2000, ¡felicidades! Has configurado exitosamente tu propia estación de radio por Internet.
6. Consejos adicionales
- Calidad del stream: Experimenta con diferentes bitrates en BUTT para encontrar el equilibrio adecuado entre calidad de audio y uso de ancho de banda. También revisa la configuración de Icecast en este aspecto.
- Monitoreo: Usa auriculares conectados directamente a tu PC para monitorear el audio que estás transmitiendo sin interferir con el stream.
- Latencia: Ten en cuenta que habrá un ligero retraso entre lo que transmites y lo que los oyentes escuchan. Esto es normal en el streaming de audio.
- Legalidad: Asegúrate de tener los derechos necesarios para transmitir cualquier contenido con derechos de autor.
- Mantenimiento: Mantén tu servidor, Debian en este caso, y todas las aplicaciones actualizadas regularmente para garantizar la seguridad y el rendimiento.
Respaldos: Considera hacer respaldos regulares de tu configuración de Icecast y BUTT para facilitar la recuperación en caso de problemas.
7. Tarea adicional: Habilitar HTTPS en Icecast
Para mejorar la seguridad de tu estación de radio, es recomendable habilitar HTTPS en tu servidor Icecast. Esto encriptará la conexión entre el servidor y los oyentes, protegiendo la privacidad y la integridad de la transmisión.
¿Por qué es importante?
- Privacidad: HTTPS evita que terceros puedan interceptar y escuchar el contenido de tu transmisión.
- Integridad: Asegura que el contenido no sea modificado en tránsito.
Autenticación: Verifica que los oyentes se estén conectando al servidor correcto.
Pasos generales para habilitar HTTPS
Como tarea adicional, te animo a investigar y configurar HTTPS en tu servidor Icecast. Aquí tienes una guía general de los pasos a seguir:
Obtener un certificado SSL/TLS:
- Puedes obtener un certificado gratuito de Let’s Encrypt.
- Alternativamente, puedes comprar un certificado de una autoridad de certificación reconocida.
Configurar Icecast para usar SSL/TLS:
- Edita el archivo de configuración de Icecast (
icecast.xml
). - Busca la sección
<ssl-certificate>
y especifica la ruta a tu certificado.
- Edita el archivo de configuración de Icecast (
Configurar un nuevo puerto para HTTPS:
- Típicamente, se usa el puerto 8443 para HTTPS en Icecast para escucha.
- Asegúrate de abrir este puerto en tu firewall UFW.
Actualizar la configuración de BUTT:
- Cambia la configuración del servidor en BUTT para usar el nuevo puerto HTTPS.
Probar la conexión segura:
Intenta conectarte a tu stream usando
https://
en lugar dehttp://
.Recursos para aprender más
Documentación oficial de Icecast sobre SSL/TLS: Icecast SSL Configuration
Tutorial de Let’s Encrypt: Let’s Encrypt Certbot
Guía de Digital Ocean sobre SSL/TLS: How To Secure Nginx with Let’s Encrypt on Ubuntu 20.04 Configurar HTTPS puede parecer desafiante al principio, pero es una habilidad valiosa que mejorará significativamente la seguridad de tu estación de radio y tus sitios web en general. Te animo a investigar, experimentar y, si es necesario, buscar ayuda en foros de la comunidad Icecast y similares.
Conclusión
Has aprendido a configurar tu propia estación de radio por Internet utilizando Icecast como servidor y BUTT como cliente de transmisión. Esta configuración te permite transmitir audio en vivo o pregrabado a oyentes en todo el mundo.
Recuerda que esta es solo una configuración básica. A medida que te familiarices más con estas herramientas, podrás explorar características más avanzadas como la programación automatizada, efectos de audio en tiempo real, y más.
¡Feliz transmisión!