c++ 阳光如何捕捉和流的桌面

sg3maiej  于 2023-08-09  发布在  其他
关注(0)|答案(1)|浏览(143)

我希望了解Sunshine project by Loki,它与moonlight一起工作,以基于Nvidia的GameStream的非常低的延迟流桌面。
我在GitHub上查看了源代码,但不知道屏幕是如何捕获的,流是如何转换为RTSP数据包的。我认为他们使用ffmpeg来捕获屏幕。
我找到了RTSP包定义here
有人能解释一下这是怎么回事吗?我试图从低层次上理解这一点,因为我想在以后的项目中实现一个类似的程序(可能是用C++本身)。
我在这里没有太多的经验,但我希望得到我的手脏!:)
希望我的问题是明确的,任何帮助理解这个或其他资源,我可以看看将不胜感激。

owfi6suc

owfi6suc1#

我只是在搜索其他东西时遇到了这个问题,所以我想我会回答,因为我是这个项目的新维护者。
在Windows上,我们使用DXGI API,截至编写此答案时。
以前的Nvidia Gamestream服务使用NVFBC(Nvidia帧缓冲区捕获),这在Windows上已被弃用。
对于Linux,我们还使用NVFBC以及其他一些协议,具体取决于用户的桌面环境。
该项目现已在https://github.com/LizardByte/Sunshine上提供
如果您想与项目开发人员聊天,请联系我们的discord

相关问题