J'utilise ceci entre Chrome et mon téléphone:
Et la latence est vraiment bonne - moins d'une seconde.
J'ai essayé de reproduire cela sur mon ordinateur sans succès.
ffmpeg -f video4linux2 -i /dev/video0 -s 320x200 -r 50 -deadline realtime -vcodec libvpx -f webm -fflags nobuffer udp://10.0.0.55:9002
Et puis en utilisant ffplay de l'autre côté.
Il y a encore quelques secondes de retard.
Finalement, j'aimerais diffuser de mon ordinateur vers le téléphone Android, mais la latence doit être bonne.
Modifier - cela fonctionne beaucoup mieux. Si je pouvais me raser un peu, je serais heureux:
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
la source
la source
Réponses:
Le problème vient principalement du fait que vous utilisez le transcodage logiciel , au lieu du transcodage matériel .
En règle générale, si la conversion utilise l'accélération matérielle, la latence sera d'un ordre inférieur à une seconde (généralement des millisecondes). Si cela se fait dans un logiciel, la latence sera alors de plus d'une seconde.
FFmpeg prend en charge l'accélération matérielle, mais il est généralement difficile de la faire fonctionner pour vous.
https://trac.ffmpeg.org/wiki/HWAccelIntro
D'autre part, Google Chrome prend en charge l'encodage / décodage matériel VP8 et H264 (lorsqu'il est disponible), à la fois sur votre ordinateur et votre téléphone Android:
http://code.google.com/p/chromium/issues/detail?id=428223
la source