Saya telah menggunakan ini antara Chrome dan ponsel saya:
Dan latensi sangat bagus - kurang dari 1 detik.
Saya sudah mencoba meniru itu di komputer saya tanpa hasil.
ffmpeg -f video4linux2 -i /dev/video0 -s 320x200 -r 50 -deadline realtime -vcodec libvpx -f webm -fflags nobuffer udp://10.0.0.55:9002
Dan kemudian menggunakan ffplay di sisi lain.
Masih ada beberapa detik lag untuk itu.
Akhirnya saya ingin melakukan streaming dari komputer saya ke ponsel Android, tetapi latensi harus baik.
Sunting - ini bekerja lebih baik secara signifikan. Jika saya bisa mencukur sedikit dari ini, saya akan senang:
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
sumber
sumber
Jawaban:
Masalahnya sebagian besar dari fakta bahwa Anda menggunakan transcoding perangkat lunak , bukan transcoding perangkat keras .
Sebagai aturan praktis, jika konversi menggunakan akselerasi perangkat keras, latensi akan kurang dari satu detik (biasanya milidetik). Jika dilakukan dalam perangkat lunak, maka latensi akan lebih dari satu detik.
FFmpeg mendukung akselerasi perangkat keras, tetapi biasanya sulit untuk membuatnya berfungsi untuk Anda.
https://trac.ffmpeg.org/wiki/HWAccelIntro
Di sisi lain, Google Chrome mendukung VP8 dan H264 (jika tersedia) pengkodean / decoding perangkat keras, baik di komputer Anda dan ponsel Android Anda:
http://code.google.com/p/chromium/issues/detail?id=428223
sumber