在Windows上使用C ++录制和保存屏幕

时间:2012-12-13 04:18:18

标签: c++ windows

我正在尝试编写一个在Windows平台上用C ++记录和保存屏幕的应用程序。我不知道从哪里开始。我假设我需要某种API,(FFMPEG,也许是OpenGL?)。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

您可以从查看Windows远程桌面协议开始,也许可以为此提供一些编程库。

我知道有一种产品拦截了对Windows GDI dll的调用,并使用它来存储屏幕绘图活动。

更简单的方法是尽可能经常地进行屏幕截图,并以某种方式最大限度地减少冗余数据(屏幕中不会在帧之间发生变化的部分)。

如果你的应用程序的所需输出是一个视频文件(如mpeg),你可能最好只抓取帧并将它们送入视频编码器。我不知道编码器的速度有多快。 Ffmpeg将是一个很好的起点。

如果编码器结果不够快,您可以尝试存储帧并随后对视频文件进行编码。连续帧应该有许多匹配的像素,因此您可以使用它来减少存储的数据量。