[Jderobot] Streaming de Video en browsers con HTML5
Oscar Garcia
oscar.robotica en linaresdigital.com
Vie Jul 12 13:59:27 CEST 2013
El 12/07/2013 13:23, Daniel Castellano escribió:
> De los problemas que comenta Oscar, H.264 puede ser con bitrate
> variable o continuo, así que no hay problema en ese aspecto (se
> declara como continuo y listo); el problema con el que yo me topé para
> streaming en directo es que no sabemos cuanto durará la retransmisión,
> y es un parámetro que necesita el navegador
Dos cosas:
1.- El problema no radica en bitrate variable o constante, radica en que
el codec no saca información al flujo de datos hasta que no pasa una
serie de fotogramas llamados "grupo de imágenes" [1]. En una estructura
M=x, N=16 (por ejemplo, N puede ampliarse o reducirse manualmente e
incluso puede ponerse dinámico) hasta que no pasan (a 25 imágenes por
segundo) 16/25 s = 640 ms de vídeo no se da salida a los fotogramas
procesados. A eso hay que agregar otras latencias (de la pila TCP de
salida, RTT/2 de red, pila TCP de recepción, tiempo de decodificación, etc).
2.- ¿Qué reproductor usáis para que os pida la duración del evento?
Nunca hemos tenido ese problema en nuestro caso.
> La solución ideal, a mi parecer, sería codificar en H.264 y si no,
> pues ya depende de si puedes utilizar plugins o no; si no puedes, MJPG
> funciona bien, dentro del "despilfarro" de recursos que supone...
De nuevo son dos cosas:
1.- Se puede codificar en H.264 desde opencv (si mal no recuerdo usa
ffmpeg), pero me gusta más este proyecto que quizá sea interesante
seguir: [2].
2.- MJPEG sólo despilfarra ancho de banda, se comporta exactamente igual
que si codificaras en MPEG con una estructura M=0, N=1. La codificación
JPEG es MUY liviana en cuanto al uso de CPU y memoria comparada con la
codificación MPEG con un M y N mayores de 1, pero a cambio pierdes la
eficiencia de ancho de banda de la codificación basada en predicciones,
estimaciones y diferencias.
Un saludo.
[1] http://en.wikipedia.org/wiki/Group_of_pictures
[2] https://code.launchpad.net/~alex-stevens/+junk/spyPanda
<https://code.launchpad.net/%7Ealex-stevens/+junk/spyPanda>
More information about the Jde-developers
mailing list