Windows Enhanced Video Renderer (EVR): наложение нескольких видео 1080p с прозрачностью?

0

Я ищу способы сложить несколько видео 1080p с прозрачностью в Windows в C++ и DirectX или Opengl. Видео начнутся в разные моменты времени. В идеале видео могут быть смешаны с другой целью рендеринга с другим игровым контентом, поэтому получаемая текстура видео должна содержать прозрачные пиксели.

Можно ли это сделать с помощью EVR и аппаратного ускорения? Какие кодеки поддерживаются? http://en.wikipedia.org/wiki/Media_Foundation упоминает прозрачность, но не отвечает на мои вопросы. Звучит так, как будто все видеоролики должны начинаться одновременно, а результирующая текстура видео не имеет прозрачности.

ТИА Кристоф

Теги:
video
directx
transparency

1 ответ

0
Лучший ответ

Это мои результаты исследования примерно с 03/14 года без окончательного ответа на эту проблему. Я не пробовал упомянутую возможность в Media Foundation, так как это звучало так, как будто результат не имеет прозрачности.

Я смог использовать второе видео с серой шкалой для маскировки видео rgb внутри шейдера. Это можно сделать с помощью отдельного видеопотока, но необходима синхронизация. Кроме того, можно кодировать видео с двумя кадрами рядом друг с другом, но многие HW-ускоренные видеокодеки не позволяют этого, а WMF является исключением. Производительность не велика, но я смог одновременно воспроизводить 3 видео 1080p30.

С другой стороны, к моему удивлению, Flash смог воспроизводить видеоролики 5+ 1080p30 с прозрачностью одновременно. Кодек Flash-видео позволяет использовать альфа-значения, но мне удалось использовать только внутри вспышки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню