HTTP流媒体桌面到浏览器的巨大延迟



我正在尝试将可靠,合理低(<2s)延迟的桌面窗口共享到浏览器解决方案放在一起。 目前我有:

使用 FFMPEG 的客户端发送方:

ffmpeg -f gdigrab -i "title=notepad.exe" -r 10 -framerate 10  -c:v libx264 -g 50  -preset fast -tune zerolatency -f rtp rtp://192.168.1.85:1234

服务器使用 VLC 重新流式传输到 HTTP:

vlc -vv test.sdp  --sout=#transcode{vcodec=theo,vb=1600,scale=1,channels=1,acodec=none}:http{dst=:8080/webcam.ogg} :no-sout-rtp-sap :no-sout-standard-sap :sout-keep 

其中 sdp 文件是从 ffmpeg 命令的输出生成的

客户端浏览器:

<video  id="video" autoplay loop muted preload="auto">
<source src="http://192.168.1.85:8080/webcam.ogg" type="video/ogg"/>
</video>

这有效并提供良好的质量。 但是延迟很糟糕(大约 10 秒),我不知道如何调整它。我知道延迟在 VLC 转码/重流中 - 在服务器上显示来自客户端的 RTP 流只有大约 1 秒的延迟。

我想有两个问题 - 这种方法是否可以明智地调整,或者这种方法一开始是错误的?

sub 2 秒通过 http 几乎是不可能的。可以减少延迟,但可能需要更改 http 源软件、将交付切换到分块传输、优化编码管道并管理播放器缓冲区。即便如此,我怀疑你是否能达到 2 秒。

最新更新