Ich habe dies zwischen Chrome und meinem Telefon verwendet:
Und die Latenz ist wirklich gut - weniger als 1 Sekunde.
Ich habe versucht, dies auf meinem Computer ohne Erfolg zu replizieren.
ffmpeg -f video4linux2 -i /dev/video0 -s 320x200 -r 50 -deadline realtime -vcodec libvpx -f webm -fflags nobuffer udp://10.0.0.55:9002
Und dann ffplay auf der anderen Seite.
Es hat immer noch ein paar Sekunden Verzögerung.
Irgendwann möchte ich von meinem Computer auf das Android-Handy streamen, aber die Latenz muss gut sein.
Bearbeiten - das funktioniert deutlich besser. Wenn ich mich ein bisschen davon rasieren könnte, wäre ich glücklich:
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
quelle
quelle
Antworten:
Das Problem ist hauptsächlich auf die Tatsache zurückzuführen, dass Sie Software-Transcodierung anstelle von Hardware-Transcodierung verwenden .
Als Faustregel gilt, dass bei der Konvertierung die Hardwarebeschleunigung die Latenzzeit von weniger als einer Sekunde (normalerweise Millisekunden) beträgt. Wenn dies in Software erfolgt, liegt die Latenz bei mehr als einer Sekunde.
FFmpeg unterstützt die Hardwarebeschleunigung, aber es ist normalerweise schwierig, sie für Sie arbeiten zu lassen.
https://trac.ffmpeg.org/wiki/HWAccelIntro
Auf der anderen Seite unterstützt Google Chrome die Hardwarecodierung / -decodierung von VP8 und H264 (sofern verfügbar), sowohl auf Ihrem Computer als auch auf Ihrem Android-Telefon:
http://code.google.com/p/chromium/issues/detail?id=428223
quelle