flash - que - reproductor flv
¿Cómo hacer pseudo-streaming Flash? (3)
@yoavf: creo que OP está interesado en los aspectos del lado del servidor de la transmisión de h.264 a pedido dentro de los archivos FLV. La reutilización de jugadores existentes sería agradable para él, creo. ¿O tal vez esa es mi propia necesidad que sale? <: S
Desde el segundo enlace de yoavf, hay otro enlace a Tinic Uro. ¿Qué pasó con el video en la web? . Una cita relevante:
¿Será posible colocar secuencias H.264 en la estructura de archivos FLV tradicional? Lo hará, pero recomendamos encarecidamente a todos que adopten el nuevo formato de archivo estándar. Hay límites funcionales con la estructura FLV cuando se transmite H.264, lo que no podríamos superar sin un rediseño del formato de archivo. Esta es una razón por la que nos alejamos de la estructura de archivos FLV tradicional. Específicamente tratar con encabezados de secuencia y enders es complicado con flujos FLV.
Entonces, parece que uno puede jugar con la codificación ffmpeg (si es así como está obteniendo sus FLV, como yo) o uno puede ingresar al nuevo formato. Hmmmm ....
Necesito construir algo que comience a servir un video con codificación H.264 en un reproductor flash a la mitad del archivo (para admitir saltar a un punto en el video que aún no se ha almacenado en el búfer).
Actualmente, los videos están en formato de contenedor FLV, pero la transcodificación es una opción. Logré volver a escribir el encabezado del archivo y la información de metadatos para un desplazamiento de bytes dado. Esto funciona para videos más antiguos, pero no para archivos codificados H.264. Sospecho que esto se debe a que las etiquetas de video dentro del archivo también deben ser alteradas, lo cual no es factible (tomaría demasiada potencia de procesamiento).
¿Cuál es la forma "correcta" de hacerlo?
El reproductor flash solo puede comenzar a reproducir video H.264 una vez que se haya descargado el átomo MOOV. Los proveedores de pseudo-streaming existentes solo le dan un encabezado FLV, ya sea los primeros 13 bytes del archivo o uno codificado, y luego sirven el archivo desde el desplazamiento dado. Si desea crear un pseudo-streamer H.264, necesitará que emita el encabezado FLV, luego un átomo MOOV y luego sirva el resto del archivo a partir del desplazamiento dado. Si no usa un contenedor FLV, no necesitará el encabezado FLV, pero igual necesitará el átomo MOOV.
Desafortunadamente, no creo que puedas usar el átomo MOOV del archivo en el disco; la información que contiene no será correcta para el fragmento de archivo que usted sirve. Por lo tanto, tendría que analizar el átomo existente y generar uno propio que fuera apropiado para la parte servida del archivo.
Si hay estructuras complicadas dentro del archivo H.264, podría ser aún más complicado pseudo-stream. Si el análisis del archivo no es factible, me temo que es posible que no pueda pseudo-transmitir sus medios.
dos cosas que puedes hacer:
1) use lighttpd y su complemento de transmisión mp4 que generará el contenedor de transmisión requerido sobre la marcha
2) cree un FLV con fotograma clave y use un script de secuencia de comandos psuedo (como XMOOV) para transmitir su archivo.
si necesitas mp4 / aac, puedes ponerlos dentro del contenedor FLV, para disgusto de adobe, pero funciona.