我正在尝试使用udp将桌面从一个PC流式传输到另一个PC。不幸的是,Latency非常高(我已经可以将它从大约15秒减少到2秒,在我在同一台PC上运行客户端和主机的测试中。 我的Hostcommand看起来像这样:
ffmpeg -f dshow -framerate 24 -i video=screen-capture-recorder -vf scale=1280:720 -vcodec libx264 -force_key_frames "expr:gte(t,n_forced*2)" -pix_fmt yuv420p -tune zerolatency -preset ultrafast -f mpegts udp://239.255.1.2:1234
我的客户端命令如下所示:
ffplay -fflags nobuffer -infbuf -fast -framedrop -vf "setpts=(PTS*0.95)" udp://239.255.1.2:1234
任何想法,如何更快地获得这个?
答案 0 :(得分:1)
我认为以下链接可以帮助您探索缓冲区使用,扩展策略,根据编译指南中描述的操作系统编译ffmpeg等其他想法。
https://trac.ffmpeg.org/wiki/EncodingForStreamingSites
另一方面,您可以考虑生成小视频(流媒体的每一部分)。
我们的想法是,客户端应用程序开始重现第一个视频,直到完全下载,同时在另一个过程中,以下小视频开始同时下载。第二个视频将被播放,直到完全下载为止,等等。
当然,我认为当网络服务影响应用视频流的功能时,显示消息很重要。
几年前,我使用网络摄像机轴,swf视频和ffmpeg做了类似的事情。 "直播视频"记录器在.net中,而播放器视频在php(服务器)和javascript(客户端)中。