Ofrecer live stream de video y audio


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:

  • Soporta a la perfección dispositivos v4l.
  • Trata a cada fuente fichero como una capa, de manera que
    puede aplicar efectos entre ellas (transparencias, rotaciones,
    diferencias…)

  • Transcodea a ogg theora.
  • es fantástico si queremos usar cámara de vídeo
    o la señal de una capturadora de vídeo como fuente.

  • es genial porque así nos será muy fácil
    incrustar una marca de agua al vídeo o incluso escribir los
    subtítulos, rotar la imagen, aplicarle efectos dinámicos…

  • es estupendo, porque normalmente las fuentes suelen venir en
    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

  • Si estáis pensando en montarlo para unas conferencias,
    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.

  • La fuente del stream y el servidor icecast pueden estar en la
    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.

  • Para que a la gente se le abra el reproductor cuando clique
    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.

  • No olvidéis enviar el audio en mono, no en estéreo.
  • Montadlo un número de días mayor o igual a 2
    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.


    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.