【发布时间】:2020-01-27 12:14:55
【问题描述】:
我需要使用 qt 显示 RGBA 编码的视频(即具有透明背景的视频)。这个想法是实时合并视频。我通常使用 libmpv,但它似乎不允许渲染透明背景视频。 我正在尝试使用带有以下代码的 QMediaPlayer:
QMainWindow w;
w.resize(1920,1080);
QVideoWidget videoWidget(&w);
videoWidget.move(0,100);
videoWidget.resize(1920,1080);
QMediaPlayer *player = new QMediaPlayer(&w);
w.resize(w.size());
player->setMedia( QUrl::fromLocalFile(PATH+"video2.mov") );
player->setVideoOutput(&videoWidget);
w.show();
player->play();
这会成功加载视频(这是一个 RGBA mov 视频),但会用黑色背景填充视频小部件,它应该是透明的,因此覆盖了视频播放器后面的任何项目。
有没有办法使用 QVideoPlayer/QVideoWidget 实际加载透明视频?如果没有,是否有有效的替代方案(我宁愿不使用 opencv 等较低级别的解决方案)。
非常感谢,
弗雷德
【问题讨论】:
标签: qt video rgba qvideowidget