使用DirectX重新创建影院模式

Jas*_*son 5 directx directshow multiple-monitors directshow.net

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

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

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

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

Rom*_* R. 2

最简单的方法是将尚未编码的视频分成两个分支,并使用两个视频渲染器集在不同的监视器上呈现视频。一个渲染器可以是应用程序 UI 的一部分,另一个渲染器可以在大型辅助显示器上展开全屏。

在此输入图像描述

分割编码视频使您可以选择仍然利用硬件辅助解码 (DXVA)(如果可用)。您可能更喜欢使用纯软件解码器并分割已解码的视频 - 这也可以工作。

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

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