Este documento describe cómo configurar una radio en línea gratuita usando software de código abierto. Explica los conceptos básicos como streaming de audio, latencia y tiempo real. Luego detalla las piezas de software requeridas como JACK, Icecast e IDJC y cómo licenciar música. Finalmente, proporciona instrucciones paso a paso para configurar el servidor, agregar música e iniciar la transmisión de la radio en una red local.
Presentación Emisora en Línea con Tecnologías Libres
1. Emisora en línea (Radio Online) con
Tecnologías Libres
1
2
4
3Niveles
2. Jorge Ulises Useche Cuellar
● Ingeniería Electrónica
● Universidad Distrital Francisco José de Caldas
3. Puntos a tratar
1. ¿Por qué una radio en línea?
2. Conceptos generales sobre servicios o demonios en
GNU/Linux
3. Terminología usada en la transmisión de medios
4. Piezas de software usadas
5. Alternativas para emisión de audio y ventajas y
desventajas de éstas
6. ¿Qué música puedo poner?, licencias asociadas
7. Ilustración general del método usado en Radio GLUD
8. Instrucciones para la primera emisión en una red local
4. 1. ¿Por qué una radio en línea?
● Sentido de comunidad
● Compartir ideas y sentimientos
● Experiencias que se adquieren
● Compartir gustos musicales
● La creatividad como reflejo de sociedad
5. 2. Conceptos generales sobre
servicios o demonios en GNU/Linux
● Disk And Execution MONitor
● Persistente
● Ejecución continua
● Segundo plano
● No shell
6. 3. Terminología usada en la
transmisión de medio
● La transmisión de medios, la acción esencial
del proceso de crear una emisora
● Interfaz web, o reproductor de audio para
escuchar el audio
11. El Tiempo Real
● Real Time (RT)
● No sinónimo
– Inmediatez
– Rapidez
● Latencia suficiente para que el sistema pueda
resolver el problema para el cual está
dedicado
12. RT en audio (Informática)
● Tiempo de respuesta crítico no exeda el 3%
● OS RT (en GNU/Linux Kernel)
– El OS RT ofrece un marco para el des. de
aplicaciones
13. Tipos de Sistema RT
● La diferencia es el daño o fallo que puede
causar un retraso en la señal
– Activos
– Pasivos
14. SIS RT Pasivo
● Sistema de audio o video en directo
– Retraso en la visibilidad del video o escucha del
audio
– Desmejora momentánea del multimedia
16. Servidor de sonido para streaming
● Gestionar los flujos de datos reproduciendo
las muestras
● Cualquier programa
– Reproductor, Grabador, Gestor
● Prog. nec. soporte para trabajar con algún
Servidor de audio
● JACK -> flujos en RT
17. Servidor de streaming de medios
● Sistema de distribución de multimedia por
streaming
● Necesita un
– Fuente
– Formato predeterminado
– Protocolo
● Icecast (ogg, webm, mp3, aac) (http,https)
18. Flujo multimedia*
● A y V es enviado desde un punto de la red a
otro
● Continuo / fluctuante**
● Min de velocidad de transferencia, para que el
streaming sea efectivo
*explicación gráfica en figura 4
19. Bitrate y Multibitrate
● kbps
● Propiedad intrínseca del flujo(archivo)
● Bits que pose el flujo en unidad de tiempo
● Multibitrate: fuente multimedia a diferentes
calidades -> movil, normal, HD
– Consumo de acuerdo a las necesidades
20. Análisis de requerimiento de ancho
de banda
● Velocidad de conexión de subida y bajada
– Speed Test
● Fluctuaciones inesperadas (calculo 70%-50%
del ancho total)
● Flujos sumados el 70%
29. Creative Commons
● Características o funciones que son:
Atribución (by), No comercial (nc), Sin derivar
(nd) y Compartir igual (sa)
● CC-by, CC-by-sa, CC-by-nd, CC-by-nc, CC-
by-nd-nc y CC-by-nc-sa
● Cultura Libre, Lawrence Lessig
33. 8. Instrucciones para la primera
emisión en red localInstalar los paquetes.
$ sudo yum install -y jack-audio-connection-kit
alsa-plugins-jack qjackctl
pulseaudio-module-jack idjc
Agregar tu usuario al los grupos relacionados con el audio.
$ sudo usermod -a -G audio $USER
Configurar el archivo limits.conf.
$ sudo nano /etc/security/limits.conf
Agregar al final del archivo las líneas.
@audio - rtprio 99
@audio - memlock unlimited
@audio - nice -10
Modificar el archivo default.conf.
$ sudo nano /etc/pulse/default.pa
Dejar la parte del archivo que se muestra de esta forma:
### Load audio drivers statically (it's probably better to not load
### these drivers manually, but instead use module-udev-
detect --
### see below -- for doing this automatically)
#load-module module-alsa-sink
#load-module module-alsa-source device=hw:1,0
#load-module module-oss device="/dev/dsp"
sink_name=output source_name=input
#load-module module-oss-mmap device="/dev/dsp"
sink_name=output source_name=input
#load-module module-null-sink
#load-module module-pipe-sink
load-module module-jack-source
load-module module-jack-sink
### Automatically load driver modules depending on the
hardware available
#.ifexists module-udev-detect.so
#load-module module-udev-detect
#.else
### Alternatively use the static hardware
detection module (for systems that
### lack udev support)
#load-module module-detect
#.endif
Agregar QJackCtl a las aplicaciones en el inicio, para este fin
ejecutar el comando.
$ gnome-session-properties
Abrir QJackCtl y configurarlo activando las opciones.
Iniciar el servidor jack al iniciar qjackctl
Habilitar ícono en bandeja del sistema
Iniciar minimizado en la bandeja del sistema
Pulse para añadir tePara activar el soporte de mp3 para IDJC
instalar.
$ sudo yum install -y lame lame-libs
Ahora por un problema de nombres de algunos archivos
ejecutar.
$ sudo ln -s /usr/lib64/libmp3lame.so.0.0.0
/usr/lib64/libmp3lame.so
$ sudo ln -s /usr/lib64/libmad.so.0.2.1 /usr/lib64/libmad.so
Solución de problemas comunes: Si al completar todos los
pasos por alguna razón no te funciona el arranque del servidor
jackd con QJackCtl, prueba quitando el pulseaudio de la lista
de aplicaciones al inicio y de no funcionar algunos lo
solucionan destildando el tiempo real en el setup de QJackCtl
e incluso he escuchado que ejecutándolo como sudo funciona,
y pues por si las dudas miren que la interfaz que se encuentra
por defecto en (default) sea la correcta.
Ahora se va a instalar icecast.
$ sudo yum install -y icecast
Abrimos el archivo de configuración.
$ sudo nano /etc/icecast.xml
Modificar los parámetros
Cambiar en la línea 49
<hostname>localhost</hostname>
por la ip local del equipo, por ejemplo:
<hostname>192.168.0.5</hostname>
Agregar en la línea 121 el punto de montaje
<mount>
<mount-name>/stream.ogg</mount-name>
<username>hackme</username>
<password>hackme</password>
<max-listeners>100</max-listeners>
</mount>
Iniciar el servidor Icecast.
$ sudo service icecast start
Xto
Abrimos el archivo de configuración.
$ sudo nano /etc/icecast.xml
Modificar los parámetros
Cambiar en la línea 49
<hostname>localhost</hostname>
por la ip local del equipo, por ejemplo:
<hostname>192.168.0.5</hostname>
Agregar en la línea 121 el punto de montaje
<mount>
<mount-name>/stream.ogg</mount-name>
<username>hackme</username>
<password>hackme</password>
<max-listeners>100</max-listeners>
</mount>
Iniciar el servidor Icecast.
$ sudo service icecast start
Ahora se inicia IDJC, se agrega música y se agrega una nueva
conexión de icecast 2 master con los datos del punto de
montaje que se pusieron arriba; posteriormente se establece
conexión con dicho servidor.
Si todo resulta bien podrán acceder a el streaming local a
través de la dirección http://192.168.0.5:8000/stream.ogg bien
sea con VLC o con algún otro reproductor que soporte
streaming.