2011-12-14 3 views
5

Мне нужно одновременно отображать видео, которое воспроизводится в моем приложении, в полноэкранном режиме на большом мониторе. На некоторых видеокартах это называется режимом «Театр» и настраивается с помощью инструмента, который производитель карты предоставляет.Воспроизведение театрального режима с DirectX

Я хотел был бы сделать это только с программным обеспечением. Могу ли я сделать это с помощью DirectX?

Моя идея - взять активное видео в данный момент с помощью DirectShow и перерисовать его на втором дисплее (как настроено пользователем) в полноэкранном режиме.

Какие технологии или методы я бы использовал для этого?

ответ

2

Простым способом является разделение еще закодированного видео на две ветви и использование двух средств визуализации для отображения видео на разных мониторах. Один визуализатор может быть частью пользовательского интерфейса приложения, другой может расширить полноэкранный режим на большом вторичном мониторе.

enter image description here

Расщепление кодированное видео даст вам возможность еще LEVERAGE аппаратное декодирование (при содействии DXVA), если имеется. Возможно, вы предпочтете использовать только декодер программного обеспечения и расколоть уже декодированное видео - это также сработает.

Возможно, вы также захотите реализовать фильтр, который будет временно отключать один или другой визуализатор, например, путем остановки передачи проб среды.

Еще одна вещь, которую вы можете сделать, - это использовать мост, чтобы еще более гибко управлять рендерерами и быть в состоянии отделить их от источника мультимедиа.

+0

Спасибо за ваш ответ. Я расстрелял вас по электронной почте и хотел бы задать вам несколько вопросов. – Jason

Смежные вопросы