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