5

我想知道 GotoMeeting 之类的软件如何捕获桌面。我可以使用 GDI 进行全屏(或逐块)捕获,但这对我来说似乎太浪费了。我也研究了镜像设备,但我想知道是否有更简单的技术或库可以做到这一点。

我需要快速高效的桌面屏幕捕获 (10p15 fps),我最终会将其转换为视频文件并与我的应用程序集成以通过网络或其他方式发送捕获的提要。

谢谢!

4

5 回答 5

1

通过使用 Mirror 设备,您可以获得更新的 Rectangle 以及指向屏幕的指针。更新的 Rectangle 指针指向所有变化的矩形,这些矩形就是变化频繁的矩形。过滤掉一些矩形,因为在一秒钟内您可以获得 1000 个矩形。

于 2010-09-02T10:24:43.243 回答
1

是的,进行屏幕截图并找出先前捕获之间的差异将是通过仅发送更改来减少传输带宽的好方法,当然这类似于逐块执行此操作的视频编码技术。

仍然意味着您需要进行捕获和额外处理以获得差异,即对其进行编码。

于 2010-01-14T14:07:37.120 回答
0

我会:

  • 进行全屏捕获,然后执行图像处理以隔离已更改的屏幕部分以节省带宽。

-或者-

于 2010-01-11T22:40:31.300 回答
0

我使用内存驱动程序以每秒 20 到 30 帧的速度显示在我的图片框上,但是当我获得全屏更新时,这些帧被缓冲。由于图片框很慢并且对我自己的组件进行了更改,这在全屏时速度有多快但效果不佳,平均我在全屏时显示 10 fps。我在渲染帧时遇到问题,我每秒可以捕获 20 到 30 帧,但我的渲染是在一秒钟内 8 到 10 个全屏帧。如果有人有全屏渲染帧,请重播我。

于 2010-10-11T06:54:48.570 回答
-1

什么语言?

.NET 提供Graphics.CopyFromScreen

于 2010-01-11T22:07:08.607 回答