【问题标题】:Controlling the aspect ratio in DirectShow (full screen mode)在 DirectShow 中控制纵横比(全屏模式)
【发布时间】:2011-09-16 21:59:00
【问题描述】:

我使用 DirectShow 和一个简单的方法 (IGraphBuilder RenderFile) 并尝试通过查询补充接口来控制其他一切。

有问题的选项是纵横比。我认为它是默认维护的,但实际上相同的程序在不同的机器上表现不同(可能是 DirectX 的版本)。对于窗口中的视频,这不是一个大问题,因为我可以自己保持窗口的纵横比(基于视频大小),但是对于全屏模式,我无法理解如何控制。

我发现至少有两个复杂的选项:用于 VMR 视频和添加叠加混合器,但是对于 IGraphBuilder 的 RenderFile 视频,是否有已知的方法?

【问题讨论】:

    标签: winapi directshow


    【解决方案1】:

    当您执行 IGraphBuilder::RenderFile 时,它​​会在内部向图形添加一个视频渲染器过滤器。通常是VMR-7 Video Renderer Filter

    在 Windows XP 及更高版本中,Video Mixing Renderer 7 (VMR-7) 是 默认视频渲染器。它被称为 VMR-7,因为它在内部 使用 DirectDraw 7。

    此时您可以枚举图形的过滤器,定位 VMR-7 并使用其接口(例如 IVMRAspectRatioControl)来指定感兴趣的模式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-02
      • 2016-07-20
      相关资源
      最近更新 更多