我一直在寻找一种方法来从当前在硬件覆盖中的视频中抓取一帧,但我还没有找到任何可靠的东西。我发现的一切要么是从您正在播放的视频中抓取帧(在您的应用程序中),要么是创建一个过滤器,我找不到一个很好的例子来说明如何在我的应用程序中实际抓取帧(或者应用程序可以是不需要在播放器中“安装”和选择的内存过滤器?)。
所以,我的问题是我该怎么做呢?我知道使用过滤器是可能的,我已经看到它完成了,我只是还没有看到它是如何完成的。是否有一个很好的例子来说明如何在过滤器中抓取帧并将它们发送到我的应用程序?或者有没有办法像挂钩到一些过程调用并以某种方式从那里获取框架?
我已经看到为 DirectX 完成挂钩以获取所有 DirectX 信息,但是,硬件覆盖不是 DirectX,是吗?或者我可以直接连接到 DirectX 并从那里获取前端缓冲区或其他什么?
我一直在寻找有关此问题的资源,但我一直在兜圈子,而且有人想将叠加层放在 DirectX 表面上这一事实无济于事,很多结果都与该主题有关。
如果相关,我更喜欢 C++ 中的解决方案(我拥有的应用程序是 C++ 中的,目前使用从屏幕抓取屏幕截图的“常规”方式,这当然会为硬件覆盖留下黑色矩形)。