I need to display RGBA encoded videos (that is, video with a transparent background) using qt. The idea is to merge videos in real time. I usually use libmpv but it does not seem to be allow rendering transparent background video. I am trying to use a QMediaPlayer with the following code:
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();
This successfully loads the video (which is an RGBA mov video) but fills the video widget with a black background where it should be transparent thus covering any item behind the video player.
Is there any way to actually load a transparent video using QVideoPlayer/QVideoWidget? If not, is there an efficient alternative (I would rather not use a lower level solution such as opencv).
Thanks a lot,
Fred