如何在 DirectShow 中使用 EVR 设置纵横比?

How to set aspec ratio with EVR in DirectShow?

我正在使用一个简单的图形来播放视频,EVR 是我的渲染器。无论视频和渲染屏幕的原生宽高比如何,我都想始终强制使用 16:9 或 16:10 宽高比。有什么办法吗?

我只找到了 IMFVideoDisplayControl::SetAspectRatioMode,但没有手动设置纵横比的选项。

您不能指示 EVR 覆盖宽高比,它只能选择是否保持 AR。如果您想更改显示视频的宽高比,则必须改用变通方法:

  1. 您可以转换视频源并更改流的媒体类型,保持有效负载不变并在各自的 VIDEOINFOHEADER2 结构中应用新的纵横比
  2. 或者,您可以禁用 EVR 上的 AR 维护选项并适当调整其大小,同时考虑到您的 AR。在这种情况下,您有责任将 space 可能留在视频周围的信箱。