La demanda de nuevos servicios en Internet hace que hayan aparecido diversos sistemas para ofrecer la ingente cantidad de información que consumimos día a día y no sea necesario ocupar espacio de manera local en nuestros dispositivos. Programación en la “nube” como modelo de sincronización y/o almacenamiento de datos o el streaming (flujo) son dos de estas novedades sobre las cuales están girando interesantes ideas dando una vuelta de tuerca a la interacción con los datos. En esta serie de artículos veremos aspectos generales de la emisión por Internet tanto en directo como en diferido con plataformas montadas en nuestros propios sistemas a bajo precio. Para ello, necesitaremos los elementos descritos en la imagen inferior que van desde la cámara que graba el evento al receptor (cliente) donde puede ser visualizado.

Un servidor de streaming es aquel que recibe los datos desde la fuente de datos (la cámara), para, posteriormente, ofrecerlo al exterior mediante una aplicación cliente. El servidor puede enviar varios streams en paralelo y de diferente tipo a través de varias direcciones web. El funcionamiento es muy sencillo: la cámara, mientras va grabando, envía información (audio y vídeo) al servidor donde tendremos instalado la plataforma que gestionará y procesará los datos. El cliente, nuestro ordenador, se conecta al servidor mediante una dirección IP y comienza a enviarnos la emisión. Dicho cliente, conforme va recibiendo la información, va guardándola en un buffer de donde vamos visionando el evento grabado. Cuando éste se llena con una parte de la información enviada, el cliente comienza a mostrarlo a la vez que sigue guardando información. La correcta sincronización entre buffer y la emisión depende directamente de la velocidad de descarga del paquete. Si existiera un descenso de la velocidad de descarga, el buffer se vaciaría, el cliente emitiría toda la información guardada y esperaría nueva información, por lo que se detendría a su espera.
Por esta razón es importante contar con un ancho de banda constante y adecuada a la emisión que se espera. Para la parte práctica trataremos en lo general aplicaciones como VLC o Icecast2 para luego centrarnos más en Red5, una completa plataforma instalada en un servidor a la que nos conectamos vía web. El uso de formatos libres y su fácil adquisición de codecs nos proporcionan una gran ventaja respecto al uso de software privado.
Como podremos observar, el servidor que esperamos poner en funcionamiento tiene varias ventajas, entre las cuales destacaremos el poco equipo necesario transportado cuando procedamos a la grabación teniendo un sistema trabajando por “debajo” de manera “transparente”. Por otro lado, el principal inconveniente es la dependencia de un ancho de banda ajeno al servidor, lo que en algunos casos puede mermar la carga del “buffer” y retrasar o detener la retransmisión. Veremos en los siguientes artículos tanto las aplicaciones comentadas en el párrafo anterior como las conexiones y un detalle del hardware usado en todo el procedimiento. Tampoco podemos olvidar qué calidad queremos ofrecer, por lo que veremos algunas fórmulas a través de las cuales calcularemos el equilibrio entre la relación tamaño/resolución y la velocidad de tasa de transferencia del servidor.
¿Nunca has querido montar tu propio YouTube o Livestream? El software libre te lo pone fácil.