lunes, 17 de mayo de 2010

Transmisión de video en vivo con HTML5

Bueno, pues el día de ayer mientras pensaba en formatos y tecnologías me daba cuenta de algo:

HTML 5 incluye una nueva etiqueta llamada VIDEO, cuyas especificaciones pueden encontrar aquí:

http://www.w3schools.com/html5/tag_video.asp

Con esta etiqueta un navegador puede reproducir videos directamente sin necesidad de plugins adicionales, lo cual ha sido una de las características más alabadas de este nuevo estándar y los desarrolladores de navegadores se encuentran ya en la tarea de proporcionar soporte para estas nuevas características.

Actualmente Safari, Firefox, Chrome y opera ya dan soporte a esta etiqueta. Internet Explorer lo hará a partir de su versión 9.

El formato más extendido entre los navegadores es Theora, un formato libre que usa la extensión .OGG y que es soportado por todos los navegadores.

La semana pasada estuve experimentando con broadcasting de video y la mejor solución que encontré fue montar en un servidor Icecast, enviar hacia este un flujo de video comprimido en formato Theora por medio de VLC y que los clientes se conectaran a este flujo usando también VLC.

La relación de ideas era demasiado obvia, pero no se me había ocurrido antes jeje. Si HTML5 soporta video Theora y IceCast hace streaming de video en Theora, entonces sería posible transmitir video directamente sobre el navegador sin necesidada de plugins adicionales...

Así que hoy realicé una prueba y funcionó perfectamente.

Para realizar Broadcasting directamente en el navegador sin necesidad de plugins se requiere:

-Un servidor Icecast Instalado.
-Un programa codificados como VLC para transmitir.
-Un navegador web con soporte para la etiqueta VIDEO y Theora.

Para transmitir, en el caso de VLC, se elige primero el origen, el cual puede ser un archivo de video dentro del equipo, un medio de captura como puede ser una cámara web, una capturadora de TV o incluso el propio escritorio.

Hay muchos manuales que explican como transmitir desde VLC hacia IceCast, así que no ahondaré en el tema.

Lo que sí recordaré es que hay que recordar es procurar el uso de un archivo como punto de montaje, basta con colocar un nombre del tipo "mivideo.ogg" como punto de montaje para que Icecast lo tenga disponible en: "http://miurl.com:8000/mivideo.ogg"

El resto es solo crear un html simple, usando la nueva etiqueta VIDEO:

<video src="http://miurl.com:8000/mivideo.ogg">HTML5 No soportado por este navegador</Video>

Listo, con esto tendremos transmisión directa sobre el navegador de cada cliente que ingrese a nuestro sitio.


Realmente resulta sencillo y más que obvio... porque no se me ocurrió antes??

Cabe aclarar que el servidor shoutcast no es indispensable, pues podemos cambiar el volcado de VLC sobre HTTP en vez de sobre Icecast usando la misma compresión, a lo cual solo restaría apuntar el SRC de la etiqueta hacia la IP desde donde estamos transmitiendo.

Sin embargo esto no es una buena idea si contamos con una conexión de upload lenta, pues toda la carga de tráfico iría sobre la IP transmisora.

Es por ello que recomiendo IceCast instalado en un buen servidor web, de esa manera todo el consumo de ancho de banda recaería sobre ese servidor y el transmisor solo tendría que cargar con el envío de flujo a este equipo.

No hay comentarios:

Publicar un comentario