c++ - DXGI AcquireNextFrame 仅在 20ms (50fps) 后才接收下一帧,是否可以加速到 10ms?

标签 c++ video directx record dxgi

下午好。
我正在编写一个程序,它会以 100 fps 从桌面录制视频,但我遇到了一个问题,AcquireNextFrame 仅在 20 毫秒后从桌面接收下一个图像,因此,我可以获得的最大 fps 将是50、你可以用这个做点什么吗?
谢谢。

最佳答案

IDXGIOutputDuplication::AcquireNextFrame如果捕获的输出没有任何变化,将不会收到任何信息。
它不像“PleaseCaptureScreenNow”命令。
超时是预期的,并且必须考虑在内。这就是为什么您不能真正设计一个工作流程,例如捕获 => 转换 => 仅在一个唯一线程上复制/编码。
微软官方DXGIDesktopDuplication出于这个原因,示例设计有多个线程。
如果屏幕以该速度变化(并且您有良好的 GPU、驱动程序等),此方法可以以 100fps 或更高的速度完美捕捉。

关于c++ - DXGI AcquireNextFrame 仅在 20ms (50fps) 后才接收下一帧,是否可以加速到 10ms?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65116035/

相关文章:

android - 如何在android中播放flv视频?

c - 关于尝试同步音频和视频

javascript - HTML5 视频验证错误

c++ - 替换遗留的 DirectDraw 代码

c - 什么是 Windows DIB?

c++ - 链接不同版本的共享库

c++ - 为什么我不能用 C++ 中的模板版本覆盖默认的复制构造函数和赋值运算符

c++ - 在 C++ 中读取文本文件显示无输出

c++ - 有人知道这个 d3d9 调试输出是否错误吗?

c++ - 这个堆栈跟踪可能意味着什么?