【问题标题】:How to play a movie with alpha channel on Qt?如何在 Qt 上播放带有 alpha 通道的电影?
【发布时间】:2012-05-13 09:25:30
【问题描述】:

我正在尝试在 Qt 中加载和查看带有 alpha 通道的视频。该视频是使用设置为 RGB + Alpha 和百万种颜色 + 的 Quicktime Animation 编码的。当我将视频加载到 After Effects 并检查时,我确信视频具有透明度。

我尝试使用 Phonon 模块但没有成功。视频加载正常,但没有 Alpha 通道,它只显示黑色背景。我尝试设置 WA_TranslucentBackground 属性,但这也不起作用。 GIF 不是一个选项,因为图形非常复杂。

有没有办法做到这一点?

【问题讨论】:

  • 我不确定,但我认为没有简单的方法可以做到这一点。怎么样做一个截图并将其设置为电影的背景。所以看起来它会是透明的。
  • @riv333 我们在另一个机会中使用了这种技术,但是,这一次背景不是静态的。我正在考虑使用 ffmpeg 阅读视频并将其呈现在 QGLWidget 中。你认为这是个好主意吗?
  • 我在这里遇到了同样的问题。
  • 如果视频不包含音频,也许您可​​以使用 ffmpeg 将帧预提取为独立图像,然后编写自定义播放器将单个图像渲染到 QLabel 上,保留 alpha?
  • 是的,我认为这将是 Jim 的唯一方法。但这实现起来并不简单,最后不像声子这样的小部件已经支持它。这就是我要做的方式,一旦我有一个工作代码,我会在这里发布一个最小的例子。

标签: c++ qt video alpha


【解决方案1】:

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

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

【讨论】:

  • 据我所知,QMovie 不支持 Alpha 通道。
猜你喜欢
  • 2011-08-19
  • 2018-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多