En el streaming en directo por Internet el contenido multimedia es reproducido a iniciativa del servidor y la señal se retransmite y se visualiza en tiempo real. Intervienen tres componentes, gráficamente:
Fuente multimedia -> Servidor streaming -> Cliente streaming
- Fuente multimedia: mezcla varias entradas (micrófono, webcam, archivos .mp3, CD,etc.), transforma la señal a un formato que entienda el servidor (.ogg o .mp3), empaqueta la señal y la convierte en un flujo de datos.
- Servidor streaming: recibe el flujo de datos (stream) y lo envía a la red.
- Cliente streaming: visualiza la secuencia de audio/vídeo mientras la descarga.
Hay varios servidores de streaming para Linux, pero el más utilizado es IceCast (icecast.org, paquete icecast2).
- Puede manejar varios streams diferentes a la vez, cada uno con una URL.
- La fuente del stream y el servidor IceCast pueden estar en la distintas máquinas, cosa que puede venir bien si donde está la fuente no hay una conexión con suficiente subida para soportar muchos clientes.
- Si queremos poner un enlace en nuestra web a una fuente IceCast la URL será (por ejemplo):
http://nuestro_dominio:8000/freej.ogg.m3u
1.- montar una radio en directo
IDJC (Internet DJ Console, onlymeok.nildram.co.uk, paquete idjc): fuente de audio para IceCast. Permite mezclar dos listas de reproducción, señal de micrófono, entradas JACK y llamadas Skype. Genera stream .ogg o .mp3, y puede grabar la emisión. Necesita el servidor de sonido JACK. (se detallara mas abajo su instalacion).
DarkIce (darkice.tyrell.hu, paquete darkice): fuente de audio para IceCast para la línea de comandos (captura el audio de la tarjeta de sonido). Tiene un frontal gráfico, DarkSnow (darksnow.radiolivre.org, paquete darksnow). (Se detallara mas abajo su instalacion).
/************************************************************************************/
Para empesar necesitaremos los siguientes paquetes.
icecast2
ices2
darkice ----->(konsole)
darksnow-->(Grafico)
noip2--------->(ip dinamicas)
Tambien hay que abrir el puerto que utilizaremos por defecto viene el 8000 en los archivos de configuracion de dichos paquetes, pero hay que abrirlo.
Como instalar y configurar el noip2
Instalano el servidor icecast
apt-get install icecast2 ices2
Arranca con el script de inicio /etc/init.d/icecast2 y se configura editando /etc/icecast2/icecast.xml. Veamos algunas de las directivas:
- número máximo de clientes:
200 ¿Qué ancho de banda consume el stream transmitiendo a 32 Kbps con 200 clientes?
32 Kbps/cliente x 200 clientes = 6400 Kbps / 1024 M/K = 6.25 Mbps
- número de sources (mounts):
2 - contraseña que solicitará a la fuente:
hackme - contraseña que solicitará si retransmitimos la señal de otro servidor (relay):
hackme - usuario y contraseña para administrar el servidor:
admin hackme - puerto estándar de Icecast (ShoutCast usa el 8001):
8000 - IP o dominio:
localhost
http://localhost:8000
Te aparecera una pantalla similar pero sin los detalles que aparecen en esa.
Ahora instalaremos y configuraremos el Darkice
Actualmente Darkice es considerado un programa estable. Existe también una versión gráfica GTK llamada Darksnow desarrollada por Rafael Diniz. ¿Cómo instalo Darkice en mi computadora?
Tenemos la opción de compilar el programa desde el código fuente (en cualquier Linux) o usar el manejador de paquetes de tu distribución.
Compilar el programa desde el código fuente
-Abrir consola e instalar Darkice como se muestra a continuación:
Desde el usuario root:
sudo su
Te pedira tu password de superusuario. Después de esto ya estarás en el superusuario, así que sólo tendrás que pegar cada una de las siguientes instrucciones una por una y oprimir “Enter”. Si solo queremos transmitir en formato ogg sólo tenemos que instalar Darkice con:
aptitude install darkice
Si queremos transmitir con mp3 hay que hacer un par de pasos más:
apt-get install checkinstall
cd /usr/src
wget -c http://ufpr.dl.sourceforge.net/sourceforge/lame/lame-3.97.tar.gz
wget -c http://ufpr.dl.sourceforge.net/sourceforge/darkice/darkice-0.18.1.tar.gz
tar -xzvf lame-3.97.tar.gz
tar -xzvf darkice-0.17.1.tar.gz
cd lame-3.97
./configure
Si aparece un error indicando que no puede compilar con soprte para Lame o que faltan librerías de Jack puedes instalar liblame0 , liblame-dev. libbio2jack0, libbio2jack0-dev, libjack0.100.0 y libjack0.100.0-dev. Puedes instalar estas librerías desde la terminal o desde el gestor de paquetes en Synaptic. Después volver a configurar con el comando ./configure
make
Para crear el paquete Debian, cuando nos pregunta el sistema oprimimos la tecla “Enter” para aceptar las opciones por defecto. Si tu sistema no es basado en Debian elimina la instrucción apt-get y utiliza make install en vez de usar la instrucción checkinstall.
checkinstall
cd ../darkice-0.17.1
./configure
make
Para crear el paquete Debian, cuando nos pregunta le damos al “intro” para aceptar las opciones por defecto.
checkinstall
Para resolver dependencias instalamos auto-apt
apt-get install auto-apt
auto-apt update
auto-apt run ./configure
auto-apt run make
Instalación en Debian etch con el manejador de paquetes
Es recomendable utilizar el manejador de paquetes de tu distribución. Para no complicarse con las dependencias, en debían/GNU Linux y sus variaciones podemos usar aptitude o synaptic para instalar paquetes. La diferencia entre es que aptitude opera desde la línea de comandos, y synaptic ofrece una interfaz gráfica.
Para transmitir sólo en formato Ogg Vorbis
aptitude install darkice
Para transmitir en formato mp3
Debian no incluye nativamente programas para la codificación en mp3. Si se quiere transmitir en mp3 es necesario incluir los paquetes de “debian-multimedia” en nuestro sistema y configurar el manejador de paquetes para tenerlos disponibles.
Editar lista de fuentes
Cambia a root.
sudo su
Anota tu password.
Abrir el archivo ”/etc/apt/sources.list” con un editor de textos. Aquí lo hacemos con gedit, pero podrías usar nano o vim también.
gedit /etc/apt/sources.list
Añadir esta línea al documento y guarda:
deb http://www.debian-multimedia.org etch main
Actualiza el sistema e instala nuestra lista de paquetes:
aptitude update
Ahora estamos listos para instalar Darkice:
aptitude install darkice-full
Deberas ver que va descargando Darkice y las dependencias que faltan. Al finalizar la descarga instalara todos los paquetes necesarios.
¿Cómo configurar Darkice para hacer un stream?
Ahora vamos a ver con configurar Darkice para transmitir por internet. Recuerda que pudes accesar al manual de Darkice con la siguiente línea en la terminal (en inglés):
man darkice
Darkice contiene un archivo que contiene un ejemplo de configuración para stream. El ejemplo contiene 3 ejemplos para configurar un stream con Icecast1, Icecast2 y Shoutcase. Vamos a abrir el archivo darkice.cfg con gedit para poderlo editar:
gedit usr/share/doc/darkice/examples/darkice.cfg
En el ejemplo aparecen ciertas variables que debemos modificar para definir la calidad de nuestro streaming, asi como el servidor de stream, la informacion del stream y de nuestro dispositivo de audio :
general
bufferSecs = 6 # tiempo de duracion del buffer
duration = 0 # duracion de reproduccion 0 representa infinito
reconnect = yes # reconectar el servidor en caso de que se desconecte
input
sampleRate = 22050 # sample rate en Hz
bitsPerSample = 16 # bits transmitidos por el sample.
channel = 1 # canales usados (1 = mono, 2 = stereo)
device = /dev/dsp1 # Dispositivo usado para la capturar de audio
icecast2-0
bitrate = 32 # Cantidad de kbps que seran transmitidos durante la coneccion
bitrateMode = cbr # Tipo de bitrate
format = mp3 # Formato de transmision
server = giss.tv # Nombre del servidor del streaming
port = 8000 # Puerto TCP del servidor icecast2
mountPoint = radio.ogg # Punto de montaje del servidor icecast2
name = Radio # Nombre generico de la radio
description = Radio # Descripcion de la radio
genre = Noticia # Genero de la radio
password = SENHA # Password del servidor icecast2
url = http://radio.minhasradio.org # URL del servidor de streaming
localDumpFile
Una vez modificadas las variables para la configuracion de nuestro streaming,guardamos el documento en otro directorio de nuestra computadora, y ahora podemos abrir el archivo con darkice para comenzar nuestro streaming:
darkice -c home/localhost/Desktop/darkice.cfg
Instalando la vercion grafica Darksnow
apt-get install darksnow
este lo instala en la siguiente ruta del menu
Menu-Debian-Aplicaciones-Sonido-Darksnow
Recuerden que este es la arte greafica del Darkice asi que tienen que instalar el Darkice y configurarlo como esta detallado mas arriba y despues utilizar el Darksnow.
Y por ultimo instalamos el IDJC para transmitir en directo XD
Python | Required |
Jack Audio Connection Kit | Required |
PyGTK | Required |
vorbis-tools | Required |
libsndfile | Required |
libsamplerate | Required |
libshout | Required |
LAME | Recommended - for streaming/recording in the mp3 format |
eyeD3 | Recommended - for metadata tagging and mp3 support |
faad2 | Recommended - provides support for m4a files |
libmad | Recommended - provides support for mp3 files |
ffmpeg | Recommended - provides support for wma files |
FLAC | Recommended - provides support for flac files |