可以在用于屏幕捕获的Windows媒体基础中捕获视频吗?

时间:2016-02-17 10:28:04

标签: c++ windows screen-capture ms-media-foundation mft

可以使用Windows Media Foundation中的Video capture来捕获桌面屏幕 阅读Windows开发人员指南后,它似乎用于从相机或其他外部设备等设备捕获视频 如果是,是硬件加速API还是软件基础?

2 个答案:

答案 0 :(得分:1)

对于桌面屏幕捕获,您应该查看通过IDXGIOutputDuplication实现的输出复制功能。您所做的是获取所需视频适配器的DXGI对象,枚举输出以找到所需的输出(或者如果您从多个屏幕同时捕获所有输出),并通过调用IDXGIOutput1::DuplicateOutput复制它。通过复制,您可以访问可以映射到CPU可读内存的GPU视频表面 - 所以是的,它会加速。

Here是微软就此事提供的完整示例。

答案 1 :(得分:0)

我发现您需要解决非常具体的任务,我认为有一个非常接近您需求的解决方案。现场" CodeProject"有文章" CaptureManager SDK"。它包括Media Foundation的流媒体桌面屏幕和输出扬声器缓冲区的有趣示例代码。它可以通过MP4格式流式传输到Web浏览器。我想你会发现它很有趣。