The QMediaPlayer object does not have a valid service
-
I'm trying to use a simple Audio QML element but I get the error "The QMediaPlayer object does not have a valid service"
I'm using Qt5.10 on Linux Mint, the same code runs fine on Qt5.11.2 on Ubuntu 16.04I've installed every possible gstreamer dev package but to no avail.
Any suggestions on how to proceed?
-
Hi,
What version GStreamer did you install ?
-
I couldn't find which one I needed.
So I installed both 0.10 and 1.0.
I'm not sure whether they can co-exist thoughWhich one do I need?
And is there a way to find out which libs I'm still missing, if any? -
Start your application with QT_DEBUG_PLUGINS environment set to 1, you'll have more information about what is failing.
-
I see (parts of log omitted). I guess at the end is the relevant error
QFactoryLoader::QFactoryLoader() looking at "/home/seppe/Qt/5.11.1/gcc_64/plugins/platforms/libqeglfs.so.debug" "The shared library was not found." QFactoryLoader::QFactoryLoader() looking at "/home/seppe/Qt/5.11.1/gcc_64/plugins/platforms/libqlinuxfb.so.debug" "The shared library was not found." QFactoryLoader::QFactoryLoader() looking at "/home/seppe/Qt/5.11.1/gcc_64/plugins/platforms/libqminimal.so.debug" "The shared library was not found." QFactoryLoader::QFactoryLoader() looking at "/home/seppe/Qt/5.11.1/gcc_64/plugins/mediaservice/libgstaudiodecoder.so.debug" "The shared library was not found." QFactoryLoader::QFactoryLoader() looking at "/home/seppe/Qt/5.11.1/gcc_64/plugins/mediaservice/libgstcamerabin.so.debug" "The shared library was not found." not a plugin QFactoryLoader::QFactoryLoader() looking at "/home/seppe/Qt/5.11.1/gcc_64/plugins/mediaservice/libgstmediaplayer.so.debug" "The shared library was not found." QLibraryPrivate::loadPlugin failed on "/home/seppe/Qt/5.11.1/gcc_64/plugins/mediaservice/libgstmediaplayer.so" : "Cannot load library /home/seppe/Qt/5.11.1/gcc_64/plugins/mediaservice/libgstmediaplayer.so: (/home/seppe/Qt/5.11.1/gcc_64/lib/libQt5MultimediaGstTools.so.5: undefined symbol: _gst_value_list_type)" defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"
-
@Marc_Van_Daele said in The QMediaPlayer object does not have a valid service:
/home/seppe/Qt/5.11.1/gcc_64/lib/libQt5MultimediaGstTools.so.5
Can you run
ldd
on that file ? -
Here is the output of
ldd /home/seppe/Qt/5.11.1/gcc_64/lib/libQt5MultimediaGstTools.so.5
I hope you can spot something suspicious in thislinux-vdso.so.1 => (0x00007ffcf81e0000) libQt5MultimediaWidgets.so.5 => /home/seppe/Qt/5.11.1/gcc_64/lib/libQt5MultimediaWidgets.so.5 (0x00007f7fe98d4000) libQt5Multimedia.so.5 => /home/seppe/Qt/5.11.1/gcc_64/lib/libQt5Multimedia.so.5 (0x00007f7fe95c7000) libQt5Widgets.so.5 => /home/seppe/Qt/5.11.1/gcc_64/lib/libQt5Widgets.so.5 (0x00007f7fe8d83000) libQt5Gui.so.5 => /home/seppe/Qt/5.11.1/gcc_64/lib/libQt5Gui.so.5 (0x00007f7fe8587000) libQt5Network.so.5 => /home/seppe/Qt/5.11.1/gcc_64/lib/libQt5Network.so.5 (0x00007f7fe81f2000) libQt5Core.so.5 => /home/seppe/Qt/5.11.1/gcc_64/lib/libQt5Core.so.5 (0x00007f7fe7a98000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7fe787a000) libasound.so.2 => /usr/lib/x86_64-linux-gnu/libasound.so.2 (0x00007f7fe758a000) libgstaudio-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstaudio-1.0.so.0 (0x00007f7fe7340000) libgstvideo-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstvideo-1.0.so.0 (0x00007f7fe70fa000) libgstpbutils-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstpbutils-1.0.so.0 (0x00007f7fe6ed4000) libgstapp-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstapp-1.0.so.0 (0x00007f7fe6cc7000) libgstbase-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstbase-1.0.so.0 (0x00007f7fe6a6f000) libgstreamer-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0 (0x00007f7fe676b000) libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f7fe651a000) libpulse-mainloop-glib.so.0 => /usr/lib/x86_64-linux-gnu/libpulse-mainloop-glib.so.0 (0x00007f7fe6315000) libpulse.so.0 => /usr/lib/x86_64-linux-gnu/libpulse.so.0 (0x00007f7fe60cc000) libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f7fe5dc4000) libGL.so.1 => /usr/lib/nvidia-384/libGL.so.1 (0x00007f7fe5b20000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f7fe580a000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7fe5504000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f7fe52ec000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7fe4f23000) libQt5OpenGL.so.5 => /home/seppe/Qt/5.11.1/gcc_64/lib/libQt5OpenGL.so.5 (0x00007f7fe4ccc000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f7fe4ab3000) libicui18n.so.56 => /home/seppe/Qt/5.11.1/gcc_64/lib/libicui18n.so.56 (0x00007f7fe461a000) libicuuc.so.56 => /home/seppe/Qt/5.11.1/gcc_64/lib/libicuuc.so.56 (0x00007f7fe4262000) libicudata.so.56 => /home/seppe/Qt/5.11.1/gcc_64/lib/libicudata.so.56 (0x00007f7fe287f000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7fe267b000) libgthread-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007f7fe2479000) /lib64/ld-linux-x86-64.so.2 (0x00007f7fe9d2a000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f7fe2271000) libgsttag-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgsttag-1.0.so.0 (0x00007f7fe2039000) liborc-0.4.so.0 => /usr/lib/x86_64-linux-gnu/liborc-0.4.so.0 (0x00007f7fe1db7000) libgmodule-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f7fe1bb3000) libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007f7fe19ab000) libpulsecommon-4.0.so => /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-4.0.so (0x00007f7fe1744000) libjson-c.so.2 => /lib/x86_64-linux-gnu/libjson-c.so.2 (0x00007f7fe1539000) libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f7fe12f4000) libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f7fe10b6000) libGLX.so.0 => /usr/lib/nvidia-384/libGLX.so.0 (0x00007f7fe0e86000) libGLdispatch.so.0 => /usr/lib/nvidia-384/libGLdispatch.so.0 (0x00007f7fe0bb8000) libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f7fe0999000) libwrap.so.0 => /lib/x86_64-linux-gnu/libwrap.so.0 (0x00007f7fe078f000) libsndfile.so.1 => /usr/lib/x86_64-linux-gnu/libsndfile.so.1 (0x00007f7fe0527000) libasyncns.so.0 => /usr/lib/x86_64-linux-gnu/libasyncns.so.0 (0x00007f7fe0321000) libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f7fdffec000) libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f7fdfdda000) libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f7fdfbd6000) libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f7fdf9d0000) libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007f7fdf7b6000) libFLAC.so.8 => /usr/lib/x86_64-linux-gnu/libFLAC.so.8 (0x00007f7fdf585000) libvorbisenc.so.2 => /usr/lib/x86_64-linux-gnu/libvorbisenc.so.2 (0x00007f7fdf0b6000) libvorbis.so.0 => /usr/lib/x86_64-linux-gnu/libvorbis.so.0 (0x00007f7fdee89000) libogg.so.0 => /usr/lib/x86_64-linux-gnu/libogg.so.0 (0x00007f7fdec80000) libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f7fdea65000)
-
Looks good indeed. Can you get the exact version that was installed by the packages manager ?
-
Not sure which packages you want and how to get the corresponding info. Note that I'm running
Mint 17 Qiana
.
I executed the following command
apt-cache policy libqt5multimedia5 libqt5multimedia5-plugins libqt5multimediawidgets5
and this outputslibqt5multimedia5: Geïnstalleerd: 5.2.1-0ubuntu5 Kandidaat: 5.2.1-0ubuntu5 Versietabel: * 5.2.1-0ubuntu5 0 500 http://archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages 100 /var/lib/dpkg/status libqt5multimedia5-plugins: Geïnstalleerd: 5.2.1-0ubuntu5 Kandidaat: 5.2.1-0ubuntu5 Versietabel: * 5.2.1-0ubuntu5 0 500 http://archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages 100 /var/lib/dpkg/status libqt5multimediawidgets5: Geïnstalleerd: 5.2.1-0ubuntu5 Kandidaat: 5.2.1-0ubuntu5 Versietabel: * 5.2.1-0ubuntu5 0 500 http://archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages 100 /var/lib/dpkg/status W: Ignoring Provides line with DepCompareOp for package gdb-minimal W: Ignoring Provides line with DepCompareOp for package gdb-minimal W: U kunt misschien 'apt-get update' uitvoeren om deze problemen te verhelpen
-
I meant the GStreamer version.
Note that since you are running a pretty old version of your Distribution. So it might just be that your GStreamer version is too old. So you either have to rebuild the plugin for your version of GStreamer or update your distribution.
-
I hope to get this fixed without updating the distribution but if all else fails, I'll have to do that indeed.
apt-cache policy gstreamer1.0-x libgstreamer1.0-0
returns the followinggstreamer1.0-x:
Geïnstalleerd: 1.2.4-1~ubuntu2.1
Kandidaat: 1.2.4-1~ubuntu2.1
Versietabel:- 1.2.4-1~ubuntu2.1 0
500 http://archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages
100 /var/lib/dpkg/status
1.2.3-1 0
500 http://archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
libgstreamer1.0-0:
Geïnstalleerd: 1.2.4-0ubuntu1.1
Kandidaat: 1.2.4-0ubuntu1.1
Versietabel:- 1.2.4-0ubuntu1.1 0
500 http://archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages
100 /var/lib/dpkg/status
1.2.3-1 0
500 http://archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
Index of /ubuntu
archive.ubuntu.com
- 1.2.4-1~ubuntu2.1 0
-
What do you get if you run
nm -D /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0 | grep _gst_value_list_type
? -
The command you gave returned nothing on the Mint setup. (On my working environment, Ubuntu 16.04, it returned
00000000003289c0 B _gst_value_list_type
)Below is the output (on Mint) of a slightly modified command
seppe@Seppe-desktop ~ $ nm -D /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0 | grep gst_value_list 00000000000a0790 T gst_value_list_append_and_take_value 00000000000a0840 T gst_value_list_append_value 00000000000a0a40 T gst_value_list_concat 000000000009f570 T gst_value_list_get_size 000000000009f4e0 T gst_value_list_get_type 000000000009f5c0 T gst_value_list_get_value 00000000000a1fd0 T gst_value_list_merge 00000000000a0940 T gst_value_list_prepend_value seppe@Seppe-desktop ~ $
-
So it looks like you have to different versions of gstreamer installed on these two systems. Can you compare that ?
-
On Ubuntu 16.04 I have the following.
Should I be able to install this version on Linux Mint 17?mvandaele@nb-mvandaele:~$ apt-cache policy libgstreamer1.0-0:amd64 libgstreamer1.0-0: Installed: 1.8.3-1~ubuntu0.1 Candidate: 1.8.3-1~ubuntu0.1 Version table: *** 1.8.3-1~ubuntu0.1 500 500 http://be.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages 100 /var/lib/dpkg/status 1.8.0-1 500 500 http://be.archive.ubuntu.com/ubuntu xenial/main amd64 Packages mvandaele@nb-mvandaele:~$
-
Version 1.2.4 Vs 1.8.3. That's a pretty big gap.
Your Linux Mint is pretty old. You should consider updating it. Otherwise you may want to rebuild the Qt GStreamer backend for your Mint version.
-
Not Qt GStreamer, the QtMultimedia module GStreamer plugin.
Download the sources from the installer.
Then:
mkdir build_Qt_multimedia cd build_Qt_multimedia /path/to/your/Qt/qmake /path/to/qtmultimedia/src/plugins/ make make install
-
After a long delay (sorry for that), I could finally try this
I downloaded the sources from http://ftp2.nluug.nl/languages/qt/official_releases/qt/5.11/5.11.2/single/ (since downloading from the installer was extremely slow)Next, I ran
/home/mvandaele/Qt/5.11.2/gcc_64/bin/qmake /home/mvandaele/temp/Qt5.11.2/src/qt-everywhere-src-5.11.2/qtmultimedia/src/plugins
but running
make
afterwards resulted inmvandaele@nb-mvandaele:~/temp/Qt5.11.2/build$ make cd m3u/ && ( test -e Makefile || /home/mvandaele/Qt/5.11.2/gcc_64/bin/qmake -o Makefile /home/mvandaele/temp/Qt5.11.2/src/qt-everywhere-src-5.11.2/qtmultimedia/src/plugins/m3u/m3u.pro ) && make -f Makefile /home/mvandaele/Qt/5.11.2/gcc_64/mkspecs/features/qt_plugin.prf:59: Cannot write file /mkspecs/modules-inst/qt_plugin_qtmultimedia_m3u.pri: Cannot create parent directory Makefile:48: recipe for target 'sub-m3u-make_first' failed make: *** [sub-m3u-make_first] Error 3
Any ideas?
-
Can you try to run qmake on the whole QtMultimedia module ? You can always only build the plugin after.