0

我在 Debian 11 上使用 Qt5.12 和 gcc+-8,桌面是 Weston 合成器。Gstreamer 版本为 1.0。我想在我的应用程序上由 QMediaPlayer 在 QVideoWidget 上显示带有 vaapisink 渲染器的 Gstreamer 视频。

这个网站上有一个例子QMediaPlayer 例子

player = new QMediaPlayer;
videoWidget = new QVideoWidget;
videoWidget->show();
player->setVideoOutput(videoWidget);
player->setMedia(QUrl("gst-pipeline: videotestsrc ! xvimagesink name=\"qtvideosink\""));
player->play();

我已经尝试过了,视频可以在 QVideoWidget 中正常运行。但是当我尝试使用来自Jellyfish的视频和 vaapisink 过滤器时,视频显示在 QVideoWidget 之外。我的代码是这样的:

player = new QMediaPlayer;
videoWidget = new QVideoWidget;
videoWidget->show();
player->setVideoOutput(videoWidget);
player->setMedia(QUrl("gst-pipeline: filesrc location=jellyfish-10-mbps-hd-h264.mkv ! matroskademux ! h264parse ! vaapih264dec ! vaapisink name=\"qtvideosink\"));
player->play();

你知道这个问题以及如何解决这个问题吗?

4

0 回答 0