Stream 使用VLC以尽可能低的延迟通过RTP传输桌面
我一直在试图找出如何使用VLC传输我的桌面(通过LAN),并实现尽可能低的延迟(我也用VLC尝试过同样的方法,但始终无法获得低于3秒的延迟。FFmpeg创造了奇迹,最终提供了低于1秒的延迟 mpeg2video和UPD提供了最好的结果,RTP延迟感觉有点糟糕,但非常接近。移动到x264可以提高质量,以换取更多的延迟,但这实际上取决于有多少动态内容以及CPU有多快。我只让x264使用UDP,但必须有一种方法使用RTP 我不确定这对播放是否可行。服务器将承受繁重的工作负载,延迟将是显而易见的——至少在Linux上,我不知道windows 在Linux上,请尝试以下命令之一:Stream 使用VLC以尽可能低的延迟通过RTP传输桌面,stream,streaming,vlc,rtsp,rtp,Stream,Streaming,Vlc,Rtsp,Rtp,我一直在试图找出如何使用VLC传输我的桌面(通过LAN),并实现尽可能低的延迟(我也用VLC尝试过同样的方法,但始终无法获得低于3秒的延迟。FFmpeg创造了奇迹,最终提供了低于1秒的延迟 mpeg2video和UPD提供了最好的结果,RTP延迟感觉有点糟糕,但非常接近。移动到x264可以提高质量,以换取更多的延迟,但这实际上取决于有多少动态内容以及CPU有多快。我只让x264使用UDP,但必须有一种方法使用RTP 我不确定这对播放是否可行。服务器将承受繁重的工作负载,延迟将是显而易见的——至少
$ ffmpeg -f x11grab -s 1600x900 -r 50 -vcodec mpeg2video -b:v 8000 -f rtp rtp://192.168.0.10:1234
或
调整屏幕分辨率(-s
)、刷新率(-r
)、带宽(-b:v
)、质量(-crf 18
或-qp 18
,越低越好)和目标ip:port
如果运行Windows,请使用dshow
代替x11grab
使用ffplay观看udp://192.168.0.10:1234
或ffplaysdp://192.168.0.10:1234
请注意,这些选项都不会流式播放声音。流式播放音频时,我无法获得如此低的延迟。这可能是可行的,我只是不知道如何实现
响应速度最快的客户端是ffplay
,VLC
引入了太多的延迟,即使其网络缓存设置为零-使用这种缓存,情况实际上变得更糟,因为它试图太频繁地“重新同步”流
如果您需要进一步的详细信息,我会对我的发现进行详细说明。希望能有所帮助。我感谢您的反馈。^ ^ ^FFmpeg还有一些x264编码设置,如“-tune zerolatency”这在这里可能很有用:在阅读本文之前,我访问了您的网站。我认为vlc和ffplay具有几乎相同的延迟。我曾尝试按以下URL传递分辨率参数,但似乎不起作用,我的意思是rtsp录制的mp4视频保持高分辨率,即使我已通过320x240:(“-t 30-I\”rtsp://xxx.xxxxxx.com/2\“-s 320x240-acodec copy-vcodec copy-to”I get
输出文件#0不包含任何流
$ ffmpeg -f x11grab -s 1600x900 -r 50 -vcodec libx264 -preset ultrafast -tune zerolatency -crf 18 -f mpegts udp://192.168.0.10:1234