使用DirectX重新创建影院模式

时间:2011-12-14 17:51:35

标签: directx directshow directshow.net multiple-monitors

我需要在更大的显示器上同时显示正在我的应用程序中播放的视频。在某些视频卡上,这称为影院模式,使用卡制造商提供的工具进行配置。

我想只使用软件来做这件事。我可以用DirectX做到这一点吗?

我的想法是使用DirectShow播放当前活动的视频,并在全屏模式下在第二个显示器(由用户配置)上重新绘制。

我将使用哪些技术或方法?

1 个答案:

答案 0 :(得分:2)

直接的方法是将已编码的视频拆分为两个分支,并使用两个视频渲染器设置在不同的监视器上显示视频。一个渲染器可以是应用程序UI的一部分,另一个可以在大型辅助监视器上全屏展开。

enter image description here

拆分编码视频可让您选择仍然利用硬件辅助解码(DXVA)(如果有)。您可能更喜欢使用仅软件解码器并拆分已解码的视频 - 这也可行。

您可能还想要实现过滤器,该过滤器将单独临时禁用一个或另一个渲染器,例如通过停止传递媒体样本。

您可以做的另一件事是使用桥接来更灵活地控制渲染器,并能够将它们从媒体源中分离出来。