Comunidad de diseño web y desarrollo en internet online

Efecto YT: Cargar vídeo desde un punto intermedio

Citar            
MensajeEscrito el 07 Ene 2008 11:20 pm
¡Muy buenas a tod@s!
Estaba pensando cómo realizar en AS 3.0 una funcionalidad que ofrece el Reproductor de Vídeos del YouTube: cargar el vídeo desde un punto intermedio.

A mí se me ocurrió cargando el vídeo 'flv' por un 'php' en mi servidor que devuelva los bytes del archivo fla a partir de cierta posición... pero, para eso, los archivos fla tendrían que ser legibles desde cualquier byte, cosa que dudo que sea posible...
De todas formas, igual Flash Player permite comprender cualquier archivo incompleto (por el principio) 'flv' o hay maneras de acceder a las posiciones referentes a los Fotogramas Clave... o algún algoritmo para localizarlos desde php.

La carga estaría vinculada a un archivo php llamado por ejemplo de esta forma:
lectorvideos.php?v=IDvideo&f=4

Donde v sería el IDvideo, es decir, el nombre del archivo flv codificado, o como sea.
Y la f sería, por ejemplo, el segundo a partir del cual queremos reproducir... incluso podría tener valor por defecto = 0.

Un saludo y espero que a alguien se le ocurra algo más directo si existe. Vamos, si YT lo hace yo creo que alguien por aquí podría saberlo, o en el peor de los casos, podríamos lograr hacerlo entre todos y todas.

Por enWILLYado

30 de clabLevel



Genero:Masculino  

2004

msie7
Citar            
MensajeEscrito el 11 Ene 2008 10:39 am
Buenas,
¿quieres decir que no es mucho más fácil?
Mírate la propiedad seek() de la clase NetStream, que lo hace de manera transparente para ti.

Ahora tengo dudas porque yo cuando he utilizado "saltos" lo he hecho con flashcomm, pero juraría que AS3 también lo permite.

Prueba y nos cuentas! :)

Por llops

294 de clabLevel

1 tutorial

 

Barcelona

firefox
Citar            
MensajeEscrito el 11 Ene 2008 11:23 am
Sí, sí... si cuando está cargado el seek(uint i) es un método válido en el NetStream del Flash 3.0 para avanzar la cabeza lectora del vídeo a un instante i. Bueno, más o menos, porque en realidad lo que hace es ponerte en fotograma clave del instante más próximo a i.
Pero el problema es cuando ese instante aun no se ha cargado: si por ejemplo un vídeo durara 10 minutos y solo se ha cargado hasta el minuto 3... y yo quiero reproducirlo a partir del minuto 5, pues el seek da, lógicamente, error; ya que el punto de referencia (fotograma clave) más cercano.

Mi idea era, si asimilamos el flv a un String a:


var video_completo:String = "";
var i:uint = <instante deseado para el inicio: entre 0 y video_completo.lenght>;
var video_parcial:String = video_completo.substr(i); // subcadena de video_completo desde la posición i hasta el final.

trace(vidio_parcial);

En realidad video_parcial sería lo que lee flash como el flv, ya recortado... con php por ejemplo. Claro que no sé la estructura del flv para que el algoritmo decidiera por donde cortar. Me imagino que se pueda hacer buscando los fotogramas clave. PERO HAY QUE TENER EN CUENTA que esto es para fuera de flv, como digo, por ejemplo php.


Otra solución ya más interna sería un método o clase que permitiera que Flash comenzara a recibir el flv, y por lo tanto llenar el buffer, a partir de una posición dada... si es así, seguro que será más estable/eficaz... pero yo no tengo ni idea de la existencia libre de eso.
El caso es que existir existe porque YouTube lo usa.

Por enWILLYado

30 de clabLevel



Genero:Masculino  

2004

msie7
Citar            
MensajeEscrito el 11 Ene 2008 01:30 pm
Pues utilizando flashcomm, en cuanto inicias la conexión, puedes saltar a cualquier punto del flv sin necesidad de cargarlo entero (para eso es stream :) )

En AS3 no lo he probado, pero si dices que no funciona... no te va a quedar más remedio que utilizar bytearray para contener el flujo de datos y sincronizar el seek con los datos que necesitas. Es un currito, la verdad... ^^

Por llops

294 de clabLevel

1 tutorial

 

Barcelona

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.