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

时间:2019-01-22 11:53:01

标签: ffmpeg streaming vlc screensharing

我正在尝试为浏览器解决方案提供可靠,合理的低延迟(<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 

从ffmpeg命令的输出生成sdp文件的地方

客户端浏览器:

<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秒的延迟。

我猜有两个问题-这种方法可以合理地调整,还是从一开始就错误?

1 个答案:

答案 0 :(得分:0)

通过HTTP不到2秒几乎是不可能的。可以减少延迟,但是您可能需要更换http原始软件,将交付切换为分块传输,优化编码管道并管理播放器缓冲区。即使那样,我仍然怀疑你会达到2秒。