使用VLC以最低延迟流式传输RTP桌面

时间:2013-05-04 01:38:36

标签: stream streaming vlc rtsp rtp

我一直试图弄清楚如何使用VLC流式传输桌面(通过LAN)并实现尽可能低的延迟(<100ms)。 目标是让另一台计算机接收流并可能在流式传输时玩游戏(即在电视旁边的PC上从PC1玩游戏)。

我应该使用哪些设置?我尝试了多种方法,但尚未成功。

编辑:我也愿意使用VLC以外的东西。

1 个答案:

答案 0 :(得分:8)

我也尝试过与VLC相同的情况,并且在3秒内无法获得延迟。 FFmpeg创造了奇迹并最终提供了1秒的延迟。

mpeg2video和UPD提供了最好的结果,RTP延迟感觉有点差但非常接近。迁移到x264可以提高质量以换取更多的延迟,但这实际上取决于有多少动态内容以及CPU的速度。我只有x264使用UDP,但必须有办法用RTP。

我不确定这是否可行。服务器将承受繁重的工作负载,延迟将会很明显 - 至少在Linux上,不了解Windows。

在Linux上尝试以下命令之一:

$ ffmpeg -f x11grab -s 1600x900 -r 50 -vcodec mpeg2video -b:v 8000 -f rtp rtp://192.168.0.10:1234

$ ffmpeg -f x11grab -s 1600x900 -r 50 -vcodec libx264 -preset ultrafast -tune zerolatency -crf 18 -f mpegts udp://192.168.0.10:1234

调整屏幕分辨率(-s <your resolution>),刷新率(-r <fps>),带宽(-b:v <bits/s>),质量(-crf 18-qp 18,更低更好)和目标ip:端口。

如果运行Windows,请使用dshow代替x11grab

使用ffplay udp://192.168.0.10:1234ffplay sdp://192.168.0.10:1234观看。

请注意,这些选项都不会传播声音。流式传输音频时,我无法获得如此低的延迟。它可能是可行的,我只是没弄明白如何。

响应最快的客户端是ffplayVLC引入了太多的延迟,即使网络缓存设置为零 - 这样的缓存实际上变得更糟,因为它也试图“重新同步”流常。

如果您需要进一步的详细信息,我对我的调查结果进行了post。希望能帮助到你。我感谢任何反馈。 ^ _ ^