He estado usando esto entre Chrome y mi teléfono:
Y la latencia es realmente buena, menos de 1 segundo.
He estado tratando de replicar eso en mi computadora sin éxito.
ffmpeg -f video4linux2 -i /dev/video0 -s 320x200 -r 50 -deadline realtime -vcodec libvpx -f webm -fflags nobuffer udp://10.0.0.55:9002
Y luego usando ffplay en el otro lado.
Todavía tiene un par de segundos de retraso.
Finalmente, me gustaría transmitir desde mi computadora al teléfono Android, pero la latencia tiene que ser buena.
Editar : esto funciona significativamente mejor. Si pudiera afeitarme un poco de esto, sería feliz:
ffmpeg -vcodec rawvideo -f video4linux2 -i /dev/video0 -s 320x200 -r 25 -vcodec libvpx -f rtp -deadline realtime rtp://10.0.0.55:9002
ffmpeg
video-streaming
David N. Welton
fuente
fuente
Respuestas:
El problema se debe principalmente al hecho de que está utilizando la transcodificación de software , en lugar de la transcodificación de hardware .
Como regla general, si la conversión usa la aceleración de hardware, la latencia será de menos de un segundo orden (generalmente milisegundos). Si se realiza en software, la latencia será de más de un segundo orden.
FFmpeg admite la aceleración de hardware, pero generalmente es difícil hacer que funcione para usted.
https://trac.ffmpeg.org/wiki/HWAccelIntro
Por otro lado, Google Chrome admite la codificación / decodificación de hardware VP8 y H264 (donde está disponible), tanto en su computadora como en su teléfono Android:
http://code.google.com/p/chromium/issues/detail?id=428223
fuente