创建虚拟桌面和流式传输其内容的方法
Way to Create Virtual Desktops and Stream Their Contents
我正在寻找一种方法来以编程方式创建多个 "virtual" 桌面,并将它们的内容流式传输到任何地方。
本质上,这些人 https://cindori.org/vrdesktop/ 使用什么 macOS api 来创建这些虚拟桌面,另外他们如何获得它的视频流?
只是在寻找正确的指导 apis/docs。无需代码:)
您需要创建一个模拟图形适配器的内核扩展,本质上只是将所有内容渲染到帧缓冲区中。然后可以将帧缓冲区导出为视频流或您选择的任何内容。
您可以在此处找到要查看的示例源代码:
https://github.com/tSoniq/displayx
https://github.com/andreacremaschi/Syphon-virtual-screen/tree/develop
https://github.com/mkernel/EWProxyFramebuffer
https://code.google.com/archive/p/ioproxyvideofamily/source/default/source
请注意,这些项目在支持最新的 macOS 版本方面不是最新的。更高版本的 macOS 引入了诸如强制内核扩展签名之类的东西,这使得 "hobby-developers" 更难产生可以在内核扩展方面在互联网上免费共享的东西。这也让恶意软件作者更难,这是好的一面。
所以看看这些源存储库,您会找到您的指导 - 但不要指望它们是完整的解决方案。
我正在寻找一种方法来以编程方式创建多个 "virtual" 桌面,并将它们的内容流式传输到任何地方。
本质上,这些人 https://cindori.org/vrdesktop/ 使用什么 macOS api 来创建这些虚拟桌面,另外他们如何获得它的视频流?
只是在寻找正确的指导 apis/docs。无需代码:)
您需要创建一个模拟图形适配器的内核扩展,本质上只是将所有内容渲染到帧缓冲区中。然后可以将帧缓冲区导出为视频流或您选择的任何内容。
您可以在此处找到要查看的示例源代码:
https://github.com/tSoniq/displayx
https://github.com/andreacremaschi/Syphon-virtual-screen/tree/develop
https://github.com/mkernel/EWProxyFramebuffer
https://code.google.com/archive/p/ioproxyvideofamily/source/default/source
请注意,这些项目在支持最新的 macOS 版本方面不是最新的。更高版本的 macOS 引入了诸如强制内核扩展签名之类的东西,这使得 "hobby-developers" 更难产生可以在内核扩展方面在互联网上免费共享的东西。这也让恶意软件作者更难,这是好的一面。
所以看看这些源存储库,您会找到您的指导 - 但不要指望它们是完整的解决方案。