Windows增强型视频渲染器(EVR):将具有透明度的多个1080p视频分层?

时间:2014-02-20 20:41:02

标签: c++ windows video directx transparency

我正在寻找在C ++和DirectX或Opengl中在Windows上透明地分层多个1080p视频的方法。视频将在不同时刻开始播放。理想情况下,视频可以与其他渲染目标与其他游戏内容混合,因此生成的视频纹理应包含透明像素。

这可以通过EVR和硬件加速完成吗?支持哪些编解码器? http://en.wikipedia.org/wiki/Media_Foundation提到透明度,但没有回答我的问题。听起来好像所有视频必须同时启动,结果视频纹理没有透明度。

TIA 克里斯托夫

1 个答案:

答案 0 :(得分:0)

这是我在03/14左右的研究结果,对这个问题没有明确的答案。 我没有在Media Foundation中尝试上述可能性,因为它听起来好像结果没有透明度。

我能够使用第二个灰度视频来屏蔽着色器中的rgb视频。这可以使用单独的视频流完成,但需要同步。此外,可以并排编码具有两个帧的视频,但许多硬件加速视频编解码器不允许这样,WMF是例外。性能不是很好,但我能够同时播放3个1080p30视频。

另一方面,令我惊讶的是,Flash能够同时播放5 + 1080p30视频并具有透明度。 flash视频编解码器允许使用alpha值,但我只在flash内部管理才能使用它们。