Aquí esta el demo que prometí , use la misma clase que publique hace unos días aqui que permite retrasar un video pero en este demo la modifique un poco para controlar el display con un slider.
Así puedo crear repeticiones instantáneas en cualquier punto de una transmisión de video en vivo o pregrabado sin tener que recurrir a servidores de medios con funcionalidades DVR.
Ventajas técnicas:
menos procesamiento en servidor trasladando ese trabajo a la parte del cliente
control fluido del video de repeticion sin recarga de un stream de video
el cliente tiene la posibilidad de guardar el video
funciona con cualquier tipo de stream de video ya sea en vivo o grabado o webcam
Desventajas :
la memoria de flash limita la cantidad de tiempo de video que se puede almacenar aproximadamente a 8 segundos
Hace poco me pidieron hacer un proyecto en mi ciudad (Guadalajara) que involucrara detección de movimiento y proyecciones interactivas asi que decidi retomar los proyectos de pisos interactivos que había dejado a un lado por varios meses, me concentrare en proyecciones con detección de movimiento y deteccion de personas.
Aunque también quiero empezar a experimentar con hardware touchscreen para crear experiencias que combinen las proyecciones y sistemas touch.
Aqui estan los primeros experimentos con instalaciones donde procure economizar lo más posible manteniendo la calidad de detección.
Proyeccion en piso, piano con animaciones de notas y logo :
Para el proyecto que realize para los Juegos Panamericanos 2011 tuve que crear varias utilidades para controlar video en vivo y pregrabado. Una de estas utilidades fue el “CamDelayer” hecho en flash que sirve para retrasar la reproduccion del video de una webcam o stream de video para sincronizarlo con otra fuente de video y asi comparar 2 o más streams que se reproducen simultaneamente e incluso compararlos cuadro por cuadro.
Este CamDelayer también puede usarse para crear un efecto tipo DVR , parecido a lo que hace el nuevo servidor flash media, para los que no conocen el DVR es la característica que permite a los usuarios detener un video en vivo en cualquier momento y reproducir una repeticion instantanea.
Al principio no sabía como hacer este efecto pero les explico como funciona, primero WebcamDelayer captura cada cuadro de video nuevo usando “BitmapData.draw” y lo guarda en una lista (array) , cada vez que se guarda un nuevo cuadro de video se desplazan las capturas anteriores una posicion atras en la lista, asi en determinado momento se cuenta con X cantidad de cuadros de video viejos guardados y sabemos que el primero de la lista es el mas viejo de los cuadros y el ultimo es el mas nuevo (el cuadro de video actual), con esto en cuenta webcamDelayer muestra el cuadro de video más viejo al usuario.
Finalmente se me ocurrio agregar un setter/getter para definir cuantos cuadros de video almacenar asi se puede definir dinamicamente cuanto retraso se desea en el video mostrado.
En el ejemplo muestro 4 CamDelayers en la parte de arriba y 3 CamDelayers sobrepuestos con alpha en la parte de abajo.