![如何在 Windows 或 Linux 上以最小甚至零 CPU 开销记录 Qt5 应用程序窗口?](https://linux22.com/image/1526142/%E5%A6%82%E4%BD%95%E5%9C%A8%20Windows%20%E6%88%96%20Linux%20%E4%B8%8A%E4%BB%A5%E6%9C%80%E5%B0%8F%E7%94%9A%E8%87%B3%E9%9B%B6%20CPU%20%E5%BC%80%E9%94%80%E8%AE%B0%E5%BD%95%20Qt5%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%AA%97%E5%8F%A3%EF%BC%9F.png)
我正在编写一个实时体积渲染应用程序,它完全在 CPU 上运行。它非常快,但尽管如此,CPU 能力越强,交互性就越好 - 基本上,我设计它是为了最大限度地利用 CPU 资源。我需要录制应用程序的演示。过去我曾在 Linux 上使用 OBS Studio 录制 RTS 游戏的演练,我记得肯定有一些 CPU 开销。这对于我的体积渲染器演示来说是不可接受的。
话虽如此,问题是:
假设一台台式机配有 NVIDIA GTX 1060 6 Gb GPU,是否可以使用该 GPU 作为编码器,以 0 CPU 开销录制不输出到 directx 或 opengl 的纯 Qt5 应用程序?我是否需要修改源代码,以利用一些允许我复制帧缓冲区并仅使用 GPU 进行动态编码的库?
编辑:
说得更清楚一点。首先,我对可以启动并记录程序窗口的应用程序感兴趣,而不是对可以作为程序员使用自己的项目的库感兴趣(即通过其 API)。但是,如果有办法以后者的方式解决问题,那也很好。
答案1
最后,唯一的零开销解决方案似乎是使用 HDMI 输出连接到外部录制设备,例如笔记本电脑或专用视频捕获盒,然后使用“重复屏幕”模式。