C++ 如何开发类似FRAPS的程序?

C++ 如何开发类似FRAPS的程序?,c++,C++,我想做一个程序来捕捉视频 捕获视频的最佳方式是什么 我知道C++,我正在学习汇编。我在我的组装手册中发现,我可以从显卡中获取数据。这是最好的办法吗 我知道FRAP与程序挂钩,但我希望我的程序能够拍摄整个屏幕的视频 如果可能的话,我想要一些速度快、内存占用率低的东西。一个要求是,尽管硬件不同,该程序必须在其他计算机上可用。Fraps的工作方式是,不可能捕获整个屏幕(当然,除非您运行的是全屏DirectX应用程序)。你显然是在试图模仿的功能,而不是FRAP CamStudio是开源的(),所以您

我想做一个程序来捕捉视频

  • 捕获视频的最佳方式是什么
  • 我知道C++,我正在学习汇编。我在我的组装手册中发现,我可以从显卡中获取数据。这是最好的办法吗
  • 我知道FRAP与程序挂钩,但我希望我的程序能够拍摄整个屏幕的视频

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

Fraps的工作方式是,不可能捕获整个屏幕(当然,除非您运行的是全屏DirectX应用程序)。你显然是在试图模仿的功能,而不是FRAP


CamStudio是开源的(),所以您可以从研究源代码开始吗?不过,我敢打赌,这并不适合初学者。

捕获整个屏幕很简单,简而言之,您可以获得一个桌面句柄(GetWindowHandle(0))并将其转换为位图


现在,您需要使用尽可能最好的压缩,将其实时编码为视频,可能是全高清或更高的视频,理想情况下是无损的,因为屏幕上的文本和传统桌面的矢量图形特性。我不知道有什么好的自定义编解码器可以满足这样的要求,所以我建议使用传统的h.264,并在质量和性能之间进行权衡。FFMPEG可能是这方面最流行的库,请查看h.264编码许可证。

什么平台?图形本质上依赖于平台。编辑:这是一个写得很差的问题。我对它进行了修改,使其更具可读性。但在将来,如果你懒得按shift键,那么会有几个人懒得回答问题。特别是当这个问题很臭的时候,请发送密码。你的最后两句话让人觉得你想让我们发送密码。你是在寻找如何做到这一点的解释,还是只是想要一个能做到这一点的库?@musicfreak:记住,最后两句话是由两个编辑器过滤的。--我不想要代码,我在问什么最有效:\n你想在屏幕上永久覆盖一个你想捕获的页面怎么样?就像fraps中的显示FPS选项一样?但为什么只显示windows?例如,我不能在Linux上使用h.264吗?我是说。。在Linux上也应该有一种同样简单的方法来处理桌面?你会用什么语言写?C或C++?@维斯克:我只是在Linux上没有做过这样的事情,所以我不能帮助你。C还是C++?事实上,这并不重要,用你更了解的。