WPF:MediaElement 中的视频颜色与 Windows Media Player 不同

Rol*_*elt 4 wpf video colors mediaelement

我注意到(在我的 Vista 64 位计算机上)WPF MediaElement 中显示的视频与 Windows Media Player 中播放的视频具有不同的颜色。在 MediaElement 内部,视频的饱和度稍低,对比度较低。

到目前为止我尝试过的视频都是由不同的人使用不同的工具制作的WMV视频,所以我排除了视频素材的问题。Windows Media Player 中的所有“视频设置”滑块(色相、饱和度、亮度、对比度)均采用默认值。

这就是为什么一开始我怀疑我的软件存在问题,该问题广泛使用了动画不透明度和放置在视频上的内容。

但我已经能够使用一个简单的测试程序重现该行为,其中 XAML 如下所示:

<Window x:Class="MediaElementTest.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">

    <MediaElement Source="D:\Test\Video.wmv" />
</Window>
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?有解决方法吗?

Bry*_*hle 5

由于我非常确定 MediaElement 将在 XP 上使用 VMR9 并在 Vista 上使用 EVR,因此您可能会看到此处解释的行为

我猜测 Windows Media Player 使用 VMR7 或默认视频渲染器,因此它没有这种行为。或者微软已经以某种方式进行了补偿。

  • 多谢!答案中链接的博客文章提到了“WPFMediaKit”,其源代码可在 CodePlex 上找到。我没有使用该库的类进行视频播放,而是单独尝试了“DeeperColor”着色器效果,即我将 DeeperColor 类的一个实例分配给 MediaElement 的 Effect 属性,并且颜色很好!DeeperColor 类可以在 WPFMediaKit 项目内的 Effects 文件夹中找到。如果您想直接在自己的项目中使用“DeeperColor.ps”,请务必将其构建操作设置为“Resource”。 (6认同)