我想写一个视窗平台的屏幕播放程序,但不确定如何捕捉屏幕。我所知道的唯一方法是使用 GDI,但是我很好奇是否还有其他方法来实现这一点,如果有的话,哪种方法的开销最小?速度是第一位的。
截屏程序将用于记录游戏画面,但是,如果这确实缩小了选择范围,我仍然欢迎任何其他建议,超出了这个范围。毕竟知识也不是坏事。
编辑 : 我偶然发现了这篇文章: 捕捉屏幕的各种方法。它向我介绍了 WindowsMediaAPI 和 DirectX 的操作方法。它在结论中提到禁用硬件加速可以极大地提高捕获应用程序的性能。我很好奇为什么会这样。有人能帮我补充一下缺失的部分吗?
编辑 : 我读到像 Camtasia 这样的截屏程序使用它们自己的捕获驱动程序。谁能给我一个深入的解释,它是如何工作的,为什么它更快?我可能还需要关于实现这样的东西的指导,但是我肯定现在已经有文档了。
此外,我现在知道 FRAPS 如何记录屏幕。它钩住底层的图形 API 从后台缓冲区读取。据我所知,这比从前端缓冲区读取要快,因为读取是从系统 RAM 而不是视频 RAM。您可以阅读文章 给你。