【问题标题】:Can Video capture in windows media foundation used for screen capturing?windows media foundation中的视频捕捉可以用于屏幕捕捉吗?
【发布时间】:2016-05-28 23:59:46
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    Here 是 Microsoft 关于此问题的完整示例。

    【讨论】:

    • 谢谢@Rudolfs,是的,我知道 DXGI。 DXGI 使用的是媒体基金会的Video capture 吗?或者这个类与DXGI有什么关系? Windows 7 不支持 DXGI。
    • @anurudh - 这与视频捕获无关。 DXGI 通过 Direct3D 而非 Media Foundation 工作。是的,它在 Windows 7 上不受支持 - 您必须在 Windows 7 上使用旧方法。
    • 好的。我还在等待答案,可以使用视频捕获屏幕捕获吗?
    • @anurudh - 没有明确的答案。我列举了视频捕获的来源,当然不会有任何东西可以为您提供屏幕内容,但是任何人都可以制作包含复制、GDI 或其他内容的自定义来源。
    • 谢谢@Rudolf。我会尽量深入,并尝试在这里用更多的证据来回答。
    【解决方案2】:

    我看到您需要解决非常具体的任务,我认为有一个非常接近您需求的解决方案。在“CodeProject”网站上有文章“CaptureManager SDK”。它包括 Media Foundation 用于流式桌面屏幕和输出扬声器缓冲区的有趣示例代码。它可以通过 MP4 格式流式传输到网络浏览器。我想你会觉得它很有趣。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-03
      • 1970-01-01
      相关资源
      最近更新 更多