我有一个相当简单的问题。或者至少我认为我很容易解决,但无法在网上找到任何答案。
反正
我使用此示例表单MSDN使用DirectShow播放文件: How To Play a File。 只需几行代码即可,它非常简单,而且很有效。
经过一些研究后,我设法创建了一个VMR9过滤器并将其添加到图表中。这也有效。
只有一件事
当我使用VMR9过滤器播放视频文件时,VMR9中的质量看起来更糟。
我尝试用IVMRMixerControl9 :: SetMixingPrefs更改它,但nothings似乎改变了。 IVMRMixerControl9::SetMixingPrefs
确实会返回S_OK。
dwPrefs &= ~MixerPref9_FilteringMask;
dwPrefs |= MixerPref9_BiLinearFiltering;
或者我使用了错误的过滤器?
编辑:问题已解决
我刚刚将其置于VMR9(窗口)模式下与Media Player Classic进行了比较。它给了我同样的品质。因此,如果我想要更好的质量,我将不得不使用EVR(增强视频渲染)而不是VMR9(视频混合渲染器9)。
答案 0 :(得分:1)
VMR-7 / VMR-9质量问题是一个长期存在的问题:
要使用EVR is suggested来获得适当/更好的缩放和视觉图像质量。
在Windows Vista及更高版本中,如果硬件支持,应用程序应使用EVR。否则,回退到VMR-9或VMR-7。与以前的渲染器相比,EVR提供更好的性能和更好的视频质量。此外,它还可以与桌面窗口管理器(DWM)配合使用。
更好的性能值得怀疑,但EVR遗憾地有自己的问题,但是当输出质量问题时,EVR就是答案。