我一直在 Chrome 和手机之间使用这个:
而且延迟非常好 - 少于 1 秒。
我一直尝试在我的计算机上复制它,但没有成功。
ffmpeg -f video4linux2 -i /dev/video0 -s 320x200 -r 50 -deadline realtime -vcodec libvpx -f webm -fflags nobuffer udp://10.0.0.55:9002
然后在另一端使用 ffplay。
它仍然有几秒钟的延迟。
最终,我想将视频从我的电脑传输到 Android 手机,但延迟必须要好。
编辑- 这样效果更好。如果我能把这个删掉一点,我会很高兴:
ffmpeg -vcodec rawvideo -f video4linux2 -i /dev/video0 -s 320x200 -r 25 -vcodec libvpx -f rtp -deadline realtime rtp://10.0.0.55:9002
答案1
问题主要在于你正在使用软件转码, 代替硬件转码。
根据经验,如果转换使用硬件加速,则延迟将少于一秒(通常为毫秒)。如果使用软件完成,则延迟将超过一秒。
FFmpeg 支持硬件加速,但让它为您工作通常很棘手。
https://trac.ffmpeg.org/wiki/HWAccelIntro
另一方面,Google Chrome 支持 VP8 和 H264(在可用的地方)硬件编码/解码,无论是在您的计算机还是 Android 手机上: