使用GMFBridge从EVR切换到VMR

时间:2014-05-02 23:12:11

标签: c# directshow directshow.net ms-media-foundation

我正在使用GMFBridge在视频之间平滑过渡。我的测试有两个显示器,我使用EVR在所有显示器上播放视频,两个VMR在每个显示器上显示不同的视频。

VMR到VMR和EVR到EVR之间的转换运行非常顺利。问题是当我进行EVR播放并需要更改为两个VMR时。如果我没有停止EVR,它会继续显示在屏幕上,即使在调用GmfBridgeController.BridgeGraphs之后(null,null)。

当从VMR切换到EVR时,我不必停止渲染器,但我在开始时闪烁了1秒钟。

我怎么解决这个问题?

1 个答案:

答案 0 :(得分:0)

在某些时候,视频渲染器会在硬件上分配资源,尤其是Direct3D设备,这种初始化不是即时的,并导致一些延迟或闪烁。当你桥接时,你的策略应该是保持视频渲染器及其托管图,并切换它背后的东西。这可以让您平稳无闪烁的操作。

将VMR切换到EVR(原因?)不太可能是平滑的。或者,只要保持两者都在运行,只需根据需要将一个放在另一个前面。