Video capture in windows media foundation 可以用来截屏吗?
Can Video capture in windows media foundation used for screen capturing?
可以使用 windows 媒体基础中的 Video capture 捕获桌面屏幕。
阅读 windows 开发人员指南后,它似乎用于从相机或其他外部设备等设备捕获视频。
如果是,是硬件加速API还是软件基础?
对于桌面屏幕截图,您应该查看通过 IDXGIOutputDuplication. What you do is obtain the DXGI object for the video adapter you need, enumerate the outputs to find the needed one (or all if you do a simultaneous capture from multiple screens) and duplicate it through a call to IDXGIOutput1::DuplicateOutput 实现的输出复制功能。复制使您可以访问可以映射到 CPU 可读内存的 GPU 视频表面 - 所以是的,它是加速的。
Here 是微软关于此事的完整示例。
我看到您需要解决非常具体的任务,我认为有一个解决方案非常符合您的需求。在站点 "CodeProject" 上有文章 "CaptureManager SDK"。它包括有趣的示例代码,用于流式传输桌面屏幕和 Media Foundation 的输出扬声器缓冲区。它可以通过 MP4 格式流式传输到 Web 浏览器。我想你会发现它很有趣。
可以使用 windows 媒体基础中的 Video capture 捕获桌面屏幕。
阅读 windows 开发人员指南后,它似乎用于从相机或其他外部设备等设备捕获视频。
如果是,是硬件加速API还是软件基础?
对于桌面屏幕截图,您应该查看通过 IDXGIOutputDuplication. What you do is obtain the DXGI object for the video adapter you need, enumerate the outputs to find the needed one (or all if you do a simultaneous capture from multiple screens) and duplicate it through a call to IDXGIOutput1::DuplicateOutput 实现的输出复制功能。复制使您可以访问可以映射到 CPU 可读内存的 GPU 视频表面 - 所以是的,它是加速的。
Here 是微软关于此事的完整示例。
我看到您需要解决非常具体的任务,我认为有一个解决方案非常符合您的需求。在站点 "CodeProject" 上有文章 "CaptureManager SDK"。它包括有趣的示例代码,用于流式传输桌面屏幕和 Media Foundation 的输出扬声器缓冲区。它可以通过 MP4 格式流式传输到 Web 浏览器。我想你会发现它很有趣。