miércoles, febrero 04, 2009

Simulando streaming de video Flash FLV con ASP.NET

Esta solución permite reproducir video Flash FLV tal como lo hace YouTube.com de forma que podemos adelantar el video aún cuando no se haya descargado la parte que queremos ver.

La verdadera solución se encuentra en kfra de donde podremos descargar la solución tanto para .NET 1.1 como 2.0.

Pero para los que no podemos hacer modificaciones en el servidor IIS o (como yo) son amantes de las soluciones sencillas, no intrusivas y contenidas en una sola página es que armé esta versión.

Se trata de una página ASPX llamada getFlv.aspx que simplemente copiamos en nuestro sitio web e invocamos desde Flash con 2 parametros:
- v: para el nombre del video. Si comienza con “/” será el path relativo al root del sitio. Si no comienza con “/” buscará a partir del lugar donde se encuentre esta página.
- start: para indicar el byte a partir del cual quieren reproducir el video. Si no le pasamos nada, entonces devolverá el video completo.

Ejemplos:
  • http://misitio.dominio.com/videos/getFlv.aspx?v=video.flv (simplemente traerá el video ubicado en la mísma carpeta que getFlv.aspx)
  • http://misitio.dominio.com/videos/getFlv.aspx?v=/video.flv (traerá el video desde el root del sitio)
  • http://misitio.dominio.com/videos/getFlv.aspx?v=nuevos/video.flv&start=580014 (traerá el video desde la carpeta "nuevos" ubicada en la misma carpeta que getFlv.aspx y lo entregará a partir del byte 580014)
Hay que tener en cuenta que esta página ASPX lo único que hace es devolver el video FLV a partir del byte indicado por parámetro. El resto dependerá del player.

En la el mismo post de kfra hay un player que pueden usar, pero si quieren desarrollar uno ustedes, deberán tener en cuenta que, para poder reproducir el video, deben pasar un start que coincida con un Key Frame. Para esto deben buscar en la metadata del streaming donde encontrarán dos arrays, Times y FilePositions. No todos los FLV contienen esta metadata y en estos casos deberán usar alguna aplicación para agregarla.

Aquí les dejo el link a getFlv.aspx.

Por supuesto que todo el crédito es de kfra. Yo sólo hice uso de la programación orientada al copy-paste.

Saludos

3 comentarios:

el_txema dijo...

buenas, mi nombre es txema: estoy buscando informacion sobre los bytes que forman la cabecera y los frames de un .flv para modificar y crear desde c o php.
gracias

Damián Bacalov dijo...

En este mismo ejemplo vas a encontrar la cabecera del FLV. Lo de los frames ya escapa a mi conocimiento.

hawk dijo...

Hola, mi nombre es hawk, soy nuevo en esto de streaming, he estado investigando sobre como hacer streaming, he llevado dias y dias y no he encontrado solucion al respecto, necesito hacer una pagina que segun el listado de audios mp3, pueda el cliente escucharlos pero que se haga tipo las radios que aunque no haya descargado el archivo se pueda escuchar, si me pudieran orientar al respecto y si esta publicacion me serviria para poderla modificar, agradezco de antemano la ayuda que me puedan dar. Saludos y bendiciones.