Desde la versión 2.2 los servidores icecast2 soportan el stream de vídeo en formato ogg theora. Este apunte nos podrá sobre la pista si queremos ofrecer un servicio de vídeo y audio en directo.
Este artículo no tiene poderes de
supervaca
Este
artículo describe las directrices generales para poner en
marcha estos servicios. Por supuesto que no comento todas las
opciones de comando posibles ni configuraciones existentes. Sí
indico algunos enlaces interesantes. Comenta tus dudas más
abajo, pero recordad: man es tu amigo e info también.
Las partes
Un
sistema de vídeo y audio en directo consta de tres elementos:
- La
fuente de datos: recoge de
algún dispositivo de vídeo o fichero la información
del vídeo y audio. Icecast lo llama sources. - El
servidor de stream: recibe los
datos ya procesados desde la fuente de datos y los ofrece
públicamente a quien quiera recibirlos. - La
aplicación cliente: se
conecta al servidor y muestra el stream a los humanos.
El servidor de stream
El
servidor de stream puede manejar varios streams de diferentes tipos a
la vez. Cada uno de los streams posibles tiene una url diferente.
Icecast
llama a cada stream un mountpoint.
Icecast permite definir infinidad de parámetros para cada
mountpoit. Incluso no
hace falta definir parámetros para cada mountpoint
que queramos ofrecer, sino que estos se creen así como se van
añadiendo nuevas fuentes de datos.
Los
sources se conectarán al servidor icecast2. Este los
autenticará y si el source quiere emitir por un
mountpoint que tiene definidos el servidor, se le aplicarán
los parámetros que el servidor defina. En caso de que el
servidor no tenga definido ese mountpoint, lo creará
(se puede restringir), con los parámetros que la source
defina más los valores por defecto.
Para
instalar icecast2 (>2.2) en debian, lo tenis a golpe de aptitude.
Tranquilos, incluso los más estables tenéis
la versión 2.2
,
aunque puede que sí tengáis problemas para conseguir
las libtheora (libtheora-dev si lo compilais).
Para
los que no usáis debian supongo que ya conocéis
vuestros propios métodos. Hay svn
y rmp’s.
La configuración
del servidor en /etc/icecast2/icecast.xml
ya está correcta para poder hacer las pruebas en local.
Es buenísimo
porque además de guardar todo en logs, ofrece una interfaz web
con datos de estado actualizados sobre cada mountpoint (máximo
de clientes, número de clientes actual, formato en el que
estáis emitiendo. Incluso lo podéis personalizar si
sabéis algo de xsl.
podéis
indicarle al servidor que guarde todo los que se emita en cualquier
mountpoint en ficheros locales.
La fuente de datos
Hay muchas
aplicaciones que pueden hacer de source
para un servidor icecast. Fuentes de audio hay infinidad (de hecho
hasta el mpd lo
soporta[rá] a partir de la versión que la versión
0.11.2 )
y también el xmms tiene plugis para ello. También os
puede resultar útil el ices2, que por defecto captura
cualquier sonido que salga por la tarjeta de audio.
Fuentes de vídeo no hay tantas, pero las suficentes. Una de
ellas es freej. pero incluso el
vlc lo
soporta. Lo bueno del freej son dos cosas:
puede aplicar efectos entre ellas (transparencias, rotaciones,
diferencias…)
o la señal de una capturadora de vídeo como fuente.
incrustar una marca de agua al vídeo o incluso escribir los
subtítulos, rotar la imagen, aplicarle efectos dinámicos…
crudo, con resoluciones altas o calidades bestiales. Esa señal
no la podemos enviar directamente a los clientes (pesa mucho). Así
que freej la puede cambiar a un formato más ligero, a la vez
que lo emite al servidor.
El vídeo que se envía al servidor icecast puede ir
acompañado de audio (por supuesto en ogg vorbis). Freej recoge
el audio por defecto desde la entrada que tengamos seleccionada en el
mixer. Eso nos permite enviar música de fondo
cuando no queremos que se oiga el sonido del micro.
Os recomiendo la versión de debian unstable, está en
pleno desarrollo todavía. Hay manuales y todas las opciones
están ya comentadas en su man.
Básicamente necesita la url donde se encuentra el servidor
icecast (incluido el mountpoint
por donde queremos que salga) el password para tener permisos en ese
servidor y los parámetros sobre la calidad del vídeo y
audio que queremos mandar al servidor.
Freej guarda por defecto todo el vídeo
que se emita al servidor en un fichero local con la calidad que lo
estéis emitiendo, no la calidad de la fuente (es decir,
después de transcodear). Por eso el fichero local incluye el
audio que grabéis de la tarjeta de audio.
La aplicación cliente
Las personas en sus casas pueden usar cualquier reproductor
que soporte el stream de vídeo ogg theora . Recordad que
para los VLC se puede instalar en el innombrable (y está
comprobado que funciona con este sistema).
Para abrir el stream tan sólo tienen que indicarle al
reproductor la url del servidor icecast (y el password si no teneis
si es un stream protegido).
Notas importantes
es muy interesante ofrecer tanto el stream de vídeo (audio i
vídeo) y por separado un stream de audio. Ya he comentado que
para el stream de audio los parámetros son los mismos y que
podéis usar ices2.
misma máquina y pueden no estarlo. Eso os puede venir bien si
allí donde tenéis la fuente de datos, no hay una
conexión con suficiente subida para soportar muchos clientes.
En ese caso, podéis montar el servidor icecast en un lugar
donde sí haya suficiente canuto y hacerle llegar la señal
del stream por una conexión lenta. Un stream de vídeo
de calidad modesta puede subir fácilmente a los 25 Kb/s. Para
cada cliente nuevo que tengáis necesitareis 25Kb más
de subida.
la url del stream en vuestra web, teneis que crear un fichero de
texto con la url del stream y con extensión (el fichero)
â.m3uâ. En la web ponéis
un enlace al fichero y listos.
antes de cuando lo necesitéis. Hacerlo todo con prisas puede
resultar un poco estresante (comprobado)
Si te has perdido, pregunta:
Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=2290 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.