我正在尝试将Windows桌面视频流传输到同一网络上的Android设备,但是即使将Windows流媒体传输到Windows,也会看到巨大的延迟。
使用该资产从技术上流式传输到一个统一的游戏,该资产不支持udp,但确实支持HTTPS,HTTP,HLS,RTSP,RTMP。 https://assetstore.unity.com/packages/tools/video/ump-android-ios-56044
在朋友的帮助下,我正在使用ffmpeg通过以下命令进行捕获,编码和流传输:
.\ffmpeg -threads 8 -f gdigrab -framerate 60 -i desktop -c:v libx264 -refs 3 -g 60 -loglevel debug -pix_fmt yuv420p -slices 8 -an -preset ultrafast -tune zerolatency -f mpegts -listen 1 tcp://0.0.0.0:1234
即使与主机托管在同一台PC上播放流并摆弄网络缓存,延迟仍约为4秒。降低分辨率,fps等不会改变延迟。这是我最先优化任何流式传输的工作,因此我有点迷茫。任何人都知道我可能做错了什么,或者我如何至少可以在不到1秒的时间内到达?]
根据我的经验,它在尝试缓冲增量视频以进行流式传输时会延迟。编码和解码的过程也会对延迟产生更大的影响。
相反,我更喜欢流式图像序列而不是编码视频,并且在大多数本地网络设置中,延迟将小于300ms。
您可以从流图像的基本知识开始自己实施建议的解决方案。相反,您也可以尝试使用FMETP进行跨平台游戏视图流式传输。