因此,我一直在研究 Windows 媒体播放的世界,并开始使用 DirectShow 制作一个 C# 媒体播放器。我开始使用 VRM-7 窗口视频渲染器,它非常出色,只是有一些小问题(多显示器、全屏)。但经过一些研究,我发现它已被弃用,我应该使用 VRM9。所以我将其更改为使用 VRM9 无窗口,然后发现这是一个旧的帖子 rofl >_< 所以最后我使用 Vista/Win7(或 XP .net 3)增强视频渲染器(EVR),这显然是最新的Microsoft 视频渲染器并添加了所有华丽的性能/质量。(老实说,我没有注意到任何差异,但也许我需要蓝光或高清视频才能注意到它)。

使用 EVR 时,除了调整视频大小外,一切正常。它确实很滞后/不稳定/泪流满面,可能与其帧排队机制有关。

为了证明我的问题

  1. 打开 Windows Media Player Classic。
  2. 查看 -> 选项 -> 播放 -> 输出
  3. 选择“EVR”DirectShow 视频渲染器

现在重新启动 wmp 类并播放视频,在播放时单击并拖动一个角以调整其大小。你会注意到它非常滞后。这与我遇到的问题完全相同。

但如果您选择“EVR Custom Pres”。**" 或 EVR Sync **" 调整大小效果非常好!所以我尝试在谷歌上搜索有关 EVR 调整大小问题以及如何修复它的任何信息,但我不敢相信我能找到的东西如此之少。我猜是“自定义主题”。代表“自定义主持人”,听起来像是自己制作的。此外,当您在 EVR 和另一个 EVR 之间交换时,您会注意到右手尺寸,右侧的调整器下拉菜单会变灰。

所以基本上我不想知道如何解决这个迟缓的调整大小问题以及是否有任何像样的文档?VMR7/9 有相当多的内容,但 EVR 的内容不多。我下载了 DirectX SDK,它显然有示例,但浪费了 500mb 的带宽,因为它没有任何相关内容。

如果这是问题所在,也许有某种方法可以强制它不排队帧?如果你想要代码,请说出这个词,我会粘贴一些进去。但它确实非常简单,没有发生任何事情,我确信这是 EVR 渲染器的问题。

编辑:哦,还有一件事,VLC 使用什么?如果你进入 vlc 选项并将渲染器更改为默认值以外的任何内容,它们都会很糟糕。那么它使用的是VMR7吗?还是它自己的?

有帮助吗?

解决方案

我需要编写自己的自定义演示器,从外观来看 http://msdn.microsoft.com/en-us/library/bb530107(VS.85).aspx 是一个比较大的任务。

我想我会看看示例并尝试从那里开始

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top