我想知道现在使用什么样的技术作为远程管理软件的基础屏幕捕获引擎,如
编程语言并不是那么重要,只需知道是否需要开发一个每秒轮询30次视频内存的驱动程序,或者Windows内核中是否有任何com对象来帮助这样做?我对第三方组件不感兴趣。我必须使用DirectX设施吗?只是想要一些起点来开发我自己的屏幕流捕获引擎,这将减少CPU占用。
答案 0 :(得分:3)
对于VNC,有一些与VNC兼容的开源工具,例如TightVNC和我认为UltraVNC,所以你可以下载代码并看看。
以下是下载TightVNC来源的链接:
http://www.tightvnc.com/download/1.3.10/tightvnc-1.3.10_winsrc.tar.bz2
答案 1 :(得分:1)
PcAnywhere和RDP使用自定义协议,尝试传输尽可能少的数据 - 例如,传输窗口和控件属性(而不是窗口的图像),让客户端渲染窗口。因此,非常适合Windows(并不总是显示完全屏幕上的内容)。它们还提供更高的安全性。
另一方面,VNC更通用,只是简单地传输屏幕的位图(或png,jpeg或其他编码)。为了防止每秒30次传输整个屏幕的图片,它只发送自上次更新以来已经改变的区域。答案 2 :(得分:1)
DirectShow过滤器似乎是最常用的方法。请参阅此答案using Windows Media Encoder to record screen。那里有一些很好的链接。
Windows Media Encoder SDK也是一个选项,但要求用户正确安装和配置它。在Bing或Google上搜索“Windows Media Encoder SDK”和“Screen Capture”,您应该会看到很多论坛帖子。
对于采取大量屏幕截图方法,可以在http://gpalem.web.officelive.com/screencap.html找到一篇关于这样做的文章,包括各种方法和来源。
UltraVNC的帮助在http://www.uvnc.com/onlinehelp/8.html处讨论了他们的镜像视频驱动程序。它对细节有所了解,但暗示了它们是如何做到的。
我相信你的捕获方式会受到你的协议的严重影响。你需要整个屏幕吗?三角洲?商业和开源计划的主要协议列表可以在.... http://en.wikipedia.org/wiki/Remote_desktop_software
详细的程序列表,包括其协议和功能,可以在...找到 http://en.wikipedia.org/wiki/Comparison_of_remote_desktop_software
正如浩所说,你可以看看其他人是如何做到的。当然,取决于应用程序的许可证。第二个维基百科链接有超过15个使用各种屏幕捕获/传输技术和协议的开源程序。