Pregunta

Tengo una pregunta sobre la salida de transmisión de libx264.Mi escenario es que estoy capturando video desde la cámara web, codificando con x264 y luego transmitiendo datos a flash, multiplexados como FLV.Para muxing, estoy usando output / flv_bitstream.h, incluido en libx264 budle.La única modificación de muxer, que hice, es que en lugar de fwrite () estoy usando send () para transferir datos a través de socket ... La biblioteca de codificación está funcionando bien.Si guardo la salida (incluso mezclada), el reproductor vlc puede reproducirla.Pero, cuando se trata de transferencia de datos a través de socket, vlc y flash no cooperan.Lo extraño es que si estoy enviando datos al reproductor vlc a través del zócalo, espera hasta que finaliza la transmisión y luego reproduce el video desde el búfer.Pero lo que necesito es reproducir una transmisión en vivo.

También intenté leer el archivo flv y enviarlo a vlc de flash etiqueta por etiqueta y está funcionando bien.

¿Alguna sugerencia?

¿Fue útil?

Solución

Implemente un servidor http simple y responda a las solicitudes entrantes con:
"HTTP / 1.0 200 OK \ r \ n"
"Pragma: sin caché \ r \ n"
"Tipo de contenido: video / x-flv \ r \ n"
"\ r \ n"
Cada uno de estos debe ir seguido del flujo de bits FLV sin procesar.
Esto debería permitir el consumo en vivo del contenido usando eg.VLC, flowplayer, ...

Además, considere usar 'url_open_dyn_buf' / 'url_close_dyn_buf' en lugar de 'fwrite', consulte ffserver como referencia.

Nadav en Sophin

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top