找不到要安装什么软件包才能获得正确的 Qtmultmedia gstreamer 后端

找不到要安装什么软件包才能获得正确的 Qtmultmedia gstreamer 后端

在崭新的 Ubuntu 中18.04,我正在尝试使用一个使用多媒体

它在 17.10 中运行良好。现在,即使安装了很多包,我仍然无法让它工作。实例化 QMediaplayer 时出现以下错误:

defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"

我认为这是一个错误,因为 Qt5 和 QtMultimedia 找不到正确注册的后端,对吗?

我已经安装了所有这些包:

gir1.2-gstreamer-1.0 1.14.0-1
gstreamer1.0-alsa:amd64 1.14.0-2ubuntu1
gstreamer1.0-clutter-3.0:amd64 3.0.26-1
gstreamer1.0-fluendo-mp3:amd64 0.10.32.debian-1
gstreamer1.0-gl:amd64 1.14.0-2ubuntu1
gstreamer1.0-libav:amd64 1.14.0-1
gstreamer1.0-packagekit 1.1.9-1ubuntu2
gstreamer1.0-plugins-bad:amd64 1.14.0-1ubuntu1
gstreamer1.0-plugins-base:amd64 1.14.0-2ubuntu1
gstreamer1.0-plugins-base-apps 1.14.0-2ubuntu1
gstreamer1.0-plugins-good:amd64 1.14.0-1ubuntu1
gstreamer1.0-plugins-ugly:amd64 1.14.0-1
gstreamer1.0-pulseaudio:amd64 1.14.0-1ubuntu1
gstreamer1.0-python3-plugin-loader 1.14.0-1
gstreamer1.0-qt5:amd64 1.14.0-1ubuntu1
gstreamer1.0-tools 1.14.0-1
gstreamer1.0-vaapi:amd64 1.14.0-1
gstreamer1.0-x:amd64 1.14.0-2ubuntu1
libgstreamer1.0-0:amd64 1.14.0-1
libgstreamer-gl1.0-0:amd64 1.14.0-2ubuntu1
libgstreamer-plugins-bad1.0-0:amd64 1.14.0-1ubuntu1
libgstreamer-plugins-base1.0-0:amd64 1.14.0-2ubuntu1
libgstreamer-plugins-good1.0-0:amd64 1.14.0-1ubuntu1
libqt5core5a:amd64 5.9.5+dfsg-0ubuntu1
libqt5dbus5:amd64 5.9.5+dfsg-0ubuntu1
libqt5designer5:amd64 5.9.5-0ubuntu1
libqt5glib-2.0-0:amd64 1.2.0-5
libqt5gstreamer-1.0-0:amd64 1.2.0-5
libqt5gui5:amd64 5.9.5+dfsg-0ubuntu1
libqt5help5:amd64 5.9.5-0ubuntu1
libqt5multimedia5:amd64 5.9.5-0ubuntu1
libqt5multimediawidgets5:amd64 5.9.5-0ubuntu1
libqt5network5:amd64 5.9.5+dfsg-0ubuntu1
libqt5opengl5:amd64 5.9.5+dfsg-0ubuntu1
libqt5printsupport5:amd64 5.9.5+dfsg-0ubuntu1
libqt5qml5:amd64 5.9.5-0ubuntu1
libqt5quick5:amd64 5.9.5-0ubuntu1
libqt5sql5:amd64 5.9.5+dfsg-0ubuntu1
libqt5sql5-sqlite:amd64 5.9.5+dfsg-0ubuntu1
libqt5svg5:amd64 5.9.5-0ubuntu1
libqt5test5:amd64 5.9.5+dfsg-0ubuntu1
libqt5widgets5:amd64 5.9.5+dfsg-0ubuntu1
libqt5x11extras5:amd64 5.9.5-0ubuntu1
libqt5xml5:amd64 5.9.5+dfsg-0ubuntu1
libreoffice-avmedia-backend-gstreamer 1:6.0.3-0ubuntu1
python3-pyqt5 5.10.1+dfsg-1ubuntu2
python3-pyqt5.qtmultimedia 5.10.1+dfsg-1ubuntu2
qt5-gtk-platformtheme:amd64 5.9.5+dfsg-0ubuntu1
qtgstreamer-plugins-qt5:amd64 1.2.0-5

当我将此列表与我在 17.10 上获得的列表进行比较时,我似乎没有遗漏任何内容。那么?

我使用 set 运行脚本QT_DEBUG_PLUGINS=1,没有看到任何错误或问题。

答案1

只是解决了我的问题所以也许它也会对你有帮助。

复制粘贴如下:

问题是我为 Python3 安装了两个版本的PyQt5sip。一个在/usr/lib/python3/dist-packages/,另一个在~/.local/lib/python3.6/site-pacages/。完全删除.local版本有帮助。

答案2

对于任何偶然发现这个问题的人,这里是正确的设置,它将以非 root 身份构建 Qt 5.11.2,然后在 Ubuntu 18.04 上安装带有 GStreamer 1.0 支持的 pyqt 5.11.2虚拟环境使用python> = 3.6:

  1. 安装gstreamer1.0
  2. 安装脉冲(这是构建 QMultimediaWidgets 所必需的)sudo apt install libpulse-dev
  3. 下载 Qt 5.11.2
  4. 使下载的文件可执行并运行它(chmod +x qt-unified-linux-x64-3.0.5-online.run)。单击完成向导。我假设您正在安装到$HOME/Qt
  5. 创建虚拟环境python -m venv venv
  6. 下载 SIP 4.19.12并解压
  7. 下载 pyqt 5.11.2并解压
  8. 激活您的环境source venv/bin/activate
  9. 安装 SIP:
    • 进入 SIP 文件夹
    • 告诉它使用你的虚拟环境python configure.py -d ../venv/lib/python3.6/site-packages
    • make -j4
    • make install
    • 为 Qt 构建一个私人副本:python configure.py -d ../venv/lib/python3.6/site-packages --sip-module PyQt5.sip --no-tools
    • make -j4
    • make install
  10. 安装 PyQt:
    • 进入 PyQt 文件夹
    • 告诉它使用哪个 qmake、python 和 sippython configure.py --destdir ../venv/lib/python3.6/site-packages --qmake ~/Qt/5.11.2/gcc_64/bin/qmake --sip ../venv/bin/sip
    • make -j12
    • make install

现在应该就是这样了。基于http://pyqt.sourceforge.net/Docs/PyQt5/installation.htmlhttp://pyqt.sourceforge.net/Docs/sip4/installation.html 并经过多次尝试和错误。如果某些方法不起作用,我建议--verbose在 PyQt 的配置步骤中使用。

相关内容