如何开发像FRAPS这样的程序?

时间:2010-04-20 04:29:55

标签: c++

我想制作一个捕捉视频的程序。

  • 捕获视频的最佳方式是什么?
  • 我知道C ++,我正在学习装配。我在装配书中发现我可以从视频卡中获取数据。这会是最好的方式吗?
  • 我知道FRAPS会挂钩程序,但我希望我的程序能够拍摄整个屏幕的视频。

我想要一些快速的东西,如果可能的话,内存使用率很低。要求是程序必须可以在其他计算机上使用,尽管硬件不同。

2 个答案:

答案 0 :(得分:7)

Fraps的工作方式,捕捉整个屏幕是不可能的(当然,除非你正在运行全屏DirectX应用程序)。你显然试图模仿CamStudio的功能,比Fraps更多。

CamStudio是开源的(here is the SorceForge page)所以也许你可以从研究源代码开始吧?不过,我会打赌这不适合初学者。

答案 1 :(得分:2)

捕获整个屏幕很简单,简而言之,您可以获得桌面句柄(GetWindowHandle(0))和BitBlt()它到您的位图。

现在您需要使用最佳压缩实时将其编码为视频,可能是全高清或更高,理想情况下由于屏幕上的文本和传统桌面的矢量图形性质而无损。我不知道这些要求有什么好的自定义编解码器,所以建议使用传统的h.264并调整质量和性能之间的权衡。 FFMPEG可能是最受欢迎的库,只需检查h.264编码的许可证。