因此,我一直在研究 Windows 媒体播放的世界,并开始使用 DirectShow 制作 C# 媒体播放器。我开始使用 VRM-7 窗口视频渲染器,它非常棒,除了它有几个小问题(多显示器、全屏)。但经过一些研究,我发现它已被弃用,我应该使用 VRM9。所以我将其更改为使用 VRM9 无窗口然后发现这是一个旧帖子 rofl >_< 所以最后我使用的是 Vista/Win7(或 XP .net 3)增强型视频渲染器(EVR),这显然是最新的Microsoft 视频渲染器,并添加了所有华丽的性能/质量的东西。(我没有注意到任何区别,但也许我需要蓝光或 HQ 视频才能注意到它)。
使用 EVR 一切正常,除了调整视频大小。它真的很慢/断断续续/泪流满面,可能与它的帧排队机制有关。
为了证明我的问题
- 打开windows media player classic。
- 查看 -> 选项 -> 播放 -> 输出
- 选择“EVR”DirectShow 视频渲染器
现在重新启动 wmp 类并播放视频,在播放时单击并拖动一个角来调整它的大小。你会注意到它非常滞后。这是我遇到的完全相同的问题。
但是,如果您选择“EVR Custom Pres. **”或“EVR Sync **”调整大小效果很好!所以我尝试在谷歌上搜索有关 EVR 调整大小问题以及如何解决它的任何信息,但我无法相信我能找到多少。我猜“Custom Pres”代表“Custom Presenter”,这听起来像是他们自己制作的。当您在 EVR 和其他 EVR 之间切换时,您会注意到右手尺寸,Resizer 下拉右侧的灰色出去。
所以基本上我不知道如何解决这个延迟调整大小的问题,那里有没有像样的文档?VMR7/9 有相当一部分,但 EVR 则不多。我下载了 DirectX SDK,它显然有示例,但它浪费了 500mb 的带宽,因为它没有任何相关性。
如果这是问题,也许有一些方法可以强制它不排队帧?如果你想要代码说出这个词,我会粘贴一些。但这真的很简单,没有什么事情发生,我相信这是 EVR 渲染器的问题。
编辑:哦,还有一件事,VLC 使用什么?如果您进入 vlc 选项并将渲染器更改为除默认值之外的任何内容,它们都会很糟糕。那么它使用VMR7吗?还是自己的?