如何在Qt中播放带有alpha通道的视频?

4

我正在尝试在Qt中加载并查看一个具有 alpha 通道的视频。 视频使用 Quicktime 动画进行编码,设置为 RGB + Alpha 和数百万种颜色+。 我确信视频的透明度工作正常,因为我将其加载到 After Effects 中并进行了检查。

我尝试使用 Phonon 模块但没有成功。 视频可以加载,但没有 alpha 通道,只显示黑色背景。 我尝试设置 WA_TranslucentBackground 属性,但也无效。 GIF 不是一个选项,因为图形相当复杂。

有什么办法可以做到这一点吗?


我不确定,但我认为没有简单的方法来做到这一点。那么,做一个屏幕截图,并将其设置为电影的背景,这样看起来就像是透明的。 - riv333
@riv333 我们在另一个机会中使用过那种技术,但是这次背景不是静态的。我正在考虑使用ffmpeg读取视频并在QGLWidget中渲染它。你觉得这个想法怎么样? - Theo
如果视频没有音频,也许您可以使用ffmpeg预先提取帧作为独立的图像,然后编写自定义播放器将单个图像呈现到QLabel上,保留alpha通道? - JimDaniel
是的,我认为那将是Jim唯一的方法。但这并不是很容易实现的,至少不像已经支持它的小部件phonon那样简单。这就是我会做的方式,一旦我有一个可行的代码,我会在这里发布一个最小的示例。 - Ian Medeiros
我不确定QuickTime是否支持此功能,我通常会加载到After Effects中进行检查。 - Alex
1个回答

0

我不确定是否可能(不知道After Effects的导出选项),但您是否尝试将电影转换为MNG格式?然后,您可以使用QMovie加载它,并支持alpha通道(尽管可能很重)。

也许这个链接会有所帮助:http://www.libpng.org/pub/mng/mngapcv.html


据我所知,QMovie不支持alpha通道。 - Ian Medeiros

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接