如何在VMR9无渲染模式下将视频调整为指定大小?

时间:2011-02-14 05:57:53

标签: video directshow

我想调整要在指定窗口上显示的视频,例如320 * 240。

我必须使用VMR-9 Renderless模式渲染到曲面。 我正在使用IVMRMixerControl9-> SetOutputRect()方法来调整视频大小。 所以我必须获得原生视频大小。但我不知道如何。

GetOutputRect方法始终返回0和1。 get_VideoHeight和get_VideoWidth方法返回E_NOINTERFACE。但我确实用视频文件构建了一个filterGraph。

我有错误的想法还是有其他方法?

提前致谢!

1 个答案:

答案 0 :(得分:2)

不确定这是否会对您有所帮助,但您是否看过VMR的无窗口模式?您可以指定窗口的句柄(例如UserControl)来显示视频。在IVMRWindowlessControl9接口上,您可以调用GetNativeVideoSize来获取本机窗口大小并从那里设置大小,然后调用SetVideoPosition来指定视频应该去的位置。在我的例子中,我使用UserControl的ClientRectangle作为目标矩形,将原始视频大小作为源矩形。