【发布时间】:2017-12-09 18:31:31
【问题描述】:
我正在尝试制作一个远程桌面应用程序,用户可以通过网络应用程序控制他的电脑(如 logmein 中)。 我使用 C# 实现桌面部分,使用 NodeJS 实现 webapp,使用 Socket.IO 进行通信。
我的第一次尝试是捕获屏幕截图(仅 5 fps),然后将其与之前的屏幕截图进行比较,并仅发送 8 位图像颜色的差异,这导致了 800 * 600 分辨率的虚拟桌面 - 首先是 100kb图像,然后根据屏幕上的变化从 5kb 到 60Kb。
在我的本地机器控制虚拟机的情况下,一切都很完美,但是当我在线托管 webapp 时,结果是灾难性的,发生了不可能的延迟。
经过一些研究,发现这种应用程序无法以我的方式实现,我必须使用实时协议并在客户端屏幕上进行直播。
我的问题是:
是否有现成可用的免费/开源 RTP 库?
如何将实时流从桌面应用程序传输到 web 应用程序,因为它来自没有开放端口的客户端?我正在考虑另一个将在服务器上运行的桌面应用程序(托管 webapp),然后它将再次流式传输相同的内容,然后 webapp 可以通过使用 RTP 端口访问本地 ip 来简单地显示内容,但是这个不能解决从客户端到服务器传输实时流的奥秘吗?
【问题讨论】:
标签: c# stream screen share rtp