Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Problem with Qt Multimedia


  • Qt Champions 2019

    @6EQUJ5 Is there something in /usr/lib/x86_64-linux-gnu/qt5/plugins/mediaservice ?



  • @jsulm The folder mediaservice in /usr/lib/x86_64-linux-gnu/qt5/plugins/ doesn't exist.


  • Qt Champions 2019

    @6EQUJ5 Looks like media plug-ins are missing.


  • Qt Champions 2019

    @6EQUJ5 Install libqt5multimedia5-plugins package



  • @jsulm I got this now:

    (Media-Player:7076): GStreamer-CRITICAL **: gst_object_ref_sink: assertion 'GST_IS_OBJECT (object)' failed


  • Qt Champions 2019

    @6EQUJ5 Can you post the output with QT_DEBUG_PLUGINS again?


  • Qt Champions 2019

    @6EQUJ5 Also: can you play a media file now?



  • @jsulm No I cannot. Not with QMediaPlayer. QSoundEffect works though.

    Output:

    Starting /home/user/Documents/Qt Projects/Media-Player/build-Media-Player-Desktop-Release/Media-Player...
    
    (Media-Player:7759): GStreamer-CRITICAL **: gst_object_ref_sink: assertion 'GST_IS_OBJECT (object)' failed
    /home/user/Documents/Qt Projects/Media-Player/build-Media-Player-Desktop-Release/Media-Player exited with code 0
    
    Starting /home/user/Documents/Qt Projects/Media-Player/build-Media-Player-Desktop-Release/Media-Player...
    
    (Media-Player:7779): GStreamer-CRITICAL **: gst_object_ref_sink: assertion 'GST_IS_OBJECT (object)' failed
    /home/user/Documents/Qt Projects/Media-Player/build-Media-Player-Desktop-Release/Media-Player exited with code 0
    
    Starting /home/user/Documents/Qt Projects/Media-Player/build-Media-Player-Desktop-Release/Media-Player...
    
    (Media-Player:7796): GStreamer-CRITICAL **: gst_object_ref_sink: assertion 'GST_IS_OBJECT (object)' failed
    /home/user/Documents/Qt Projects/Media-Player/build-Media-Player-Desktop-Release/Media-Player exited with code 0
    
    Starting /home/user/Documents/Qt Projects/Media-Player/build-Media-Player-Desktop-Release/Media-Player...
    
    (Media-Player:7813): GStreamer-CRITICAL **: gst_object_ref_sink: assertion 'GST_IS_OBJECT (object)' failed
    /home/user/Documents/Qt Projects/Media-Player/build-Media-Player-Desktop-Release/Media-Player exited with code 0
    
    Starting /home/user/Documents/Qt Projects/Media-Player/build-Media-Player-Desktop-Release/Media-Player...
    
    (Media-Player:7904): GStreamer-CRITICAL **: gst_object_ref_sink: assertion 'GST_IS_OBJECT (object)' failed
    /home/user/Documents/Qt Projects/Media-Player/build-Media-Player-Desktop-Release/Media-Player exited with code 0
    
    Starting /home/user/Documents/Qt Projects/Media-Player/build-Media-Player-Desktop-Release/Media-Player...
    
    (Media-Player:7933): GStreamer-CRITICAL **: gst_object_ref_sink: assertion 'GST_IS_OBJECT (object)' failed
    /home/user/Documents/Qt Projects/Media-Player/build-Media-Player-Desktop-Release/Media-Player exited with code 0
    
    Starting /home/user/Documents/Qt Projects/Media-Player/build-Media-Player-Desktop-Release/Media-Player...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms" ...
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqeglfs.so"
    Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqeglfs.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.2",
        "MetaData": {
            "Keys": [
                "eglfs"
            ]
        },
        "className": "QEglFSIntegrationPlugin",
        "debug": false,
        "version": 328450
    }
    
    
    Got keys from plugin meta data ("eglfs")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqkms.so"
    Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqkms.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.2",
        "MetaData": {
            "Keys": [
                "kms"
            ]
        },
        "className": "QKmsIntegrationPlugin",
        "debug": false,
        "version": 328450
    }
    
    
    Got keys from plugin meta data ("kms")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqlinuxfb.so"
    Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqlinuxfb.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.2",
        "MetaData": {
            "Keys": [
                "linuxfb"
            ]
        },
        "className": "QLinuxFbIntegrationPlugin",
        "debug": false,
        "version": 328450
    }
    
    
    Got keys from plugin meta data ("linuxfb")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqminimal.so"
    Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqminimal.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.2",
        "MetaData": {
            "Keys": [
                "minimal"
            ]
        },
        "className": "QMinimalIntegrationPlugin",
        "debug": false,
        "version": 328450
    }
    
    
    Got keys from plugin meta data ("minimal")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqminimalegl.so"
    Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqminimalegl.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.2",
        "MetaData": {
            "Keys": [
                "minimalegl"
            ]
        },
        "className": "QMinimalEglIntegrationPlugin",
        "debug": false,
        "version": 328450
    }
    
    
    Got keys from plugin meta data ("minimalegl")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqoffscreen.so"
    Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqoffscreen.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.2",
        "MetaData": {
            "Keys": [
                "offscreen"
            ]
        },
        "className": "QOffscreenIntegrationPlugin",
        "debug": false,
        "version": 328450
    }
    
    
    Got keys from plugin meta data ("offscreen")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so"
    Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.2",
        "MetaData": {
            "Keys": [
                "xcb"
            ]
        },
        "className": "QXcbIntegrationPlugin",
        "debug": false,
        "version": 328450
    }
    
    
    Got keys from plugin meta data ("xcb")
    QFactoryLoader::QFactoryLoader() checking directory path "/home/user/Documents/Qt Projects/Media-Player/build-Media-Player-Desktop-Release/platforms" ...
    loaded library "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so"
    loaded library "Xcursor"
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/x86_64-linux-gnu/qt5/plugins/platformthemes" ...
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platformthemes/libqgtk2.so"
    Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platformthemes/libqgtk2.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformThemeFactoryInterface.5.1",
        "MetaData": {
            "Keys": [
                "gtk2"
            ]
        },
        "className": "QGtk2ThemePlugin",
        "debug": false,
        "version": 328450
    }
    
    
    Got keys from plugin meta data ("gtk2")
    QFactoryLoader::QFactoryLoader() checking directory path "/home/user/Documents/Qt Projects/Media-Player/build-Media-Player-Desktop-Release/platformthemes" ...
    loaded library "/usr/lib/x86_64-linux-gnu/qt5/plugins/platformthemes/libqgtk2.so"
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts" ...
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so"
    Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPlatformInputContextFactoryInterface",
        "MetaData": {
            "Keys": [
                "compose"
            ]
        },
        "className": "QComposePlatformInputContextPlugin",
        "debug": false,
        "version": 328450
    }
    
    
    Got keys from plugin meta data ("compose")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so"
    Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPlatformInputContextFactoryInterface",
        "MetaData": {
            "Keys": [
                "ibus"
            ]
        },
        "className": "QIbusPlatformInputContextPlugin",
        "debug": false,
        "version": 328450
    }
    
    
    Got keys from plugin meta data ("ibus")
    QFactoryLoader::QFactoryLoader() checking directory path "/home/user/Documents/Qt Projects/Media-Player/build-Media-Player-Desktop-Release/platforminputcontexts" ...
    loaded library "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so"
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/x86_64-linux-gnu/qt5/plugins/generic" ...
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/generic/libqevdevkeyboardplugin.so"
    Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/generic/libqevdevkeyboardplugin.so, metadata=
    {
        "IID": "org.qt-project.Qt.QGenericPluginFactoryInterface",
        "MetaData": {
            "Keys": [
                "EvdevKeyboard"
            ]
        },
        "className": "QEvdevKeyboardPlugin",
        "debug": false,
        "version": 328450
    }
    
    
    Got keys from plugin meta data ("evdevkeyboard")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/generic/libqevdevmouseplugin.so"
    Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/generic/libqevdevmouseplugin.so, metadata=
    {
        "IID": "org.qt-project.Qt.QGenericPluginFactoryInterface",
        "MetaData": {
            "Keys": [
                "EvdevMouse"
            ]
        },
        "className": "QEvdevMousePlugin",
        "debug": false,
        "version": 328450
    }
    
    
    Got keys from plugin meta data ("evdevmouse")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/generic/libqevdevtabletplugin.so"
    Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/generic/libqevdevtabletplugin.so, metadata=
    {
        "IID": "org.qt-project.Qt.QGenericPluginFactoryInterface",
        "MetaData": {
            "Keys": [
                "EvdevTablet"
            ]
        },
        "className": "QEvdevTabletPlugin",
        "debug": false,
        "version": 328450
    }
    
    
    Got keys from plugin meta data ("evdevtablet")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/generic/libqevdevtouchplugin.so"
    Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/generic/libqevdevtouchplugin.so, metadata=
    {
        "IID": "org.qt-project.Qt.QGenericPluginFactoryInterface",
        "MetaData": {
            "Keys": [
                "EvdevTouch"
            ]
        },
        "className": "QEvdevTouchScreenPlugin",
        "debug": false,
        "version": 328450
    }
    
    
    Got keys from plugin meta data ("evdevtouch")
    QFactoryLoader::QFactoryLoader() checking directory path "/home/user/Documents/Qt Projects/Media-Player/build-Media-Player-Desktop-Release/generic" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/x86_64-linux-gnu/qt5/plugins/styles" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/home/user/Documents/Qt Projects/Media-Player/build-Media-Player-Desktop-Release/styles" ...
    loaded library "gtk-x11-2.0"
    loaded library "gnomeui-2"
    loaded library "gnomevfs-2"
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/x86_64-linux-gnu/qt5/plugins/mediaservice" ...
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/mediaservice/libgstaudiodecoder.so"
    Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/mediaservice/libgstaudiodecoder.so, metadata=
    {
        "IID": "org.qt-project.qt.mediaserviceproviderfactory/5.0",
        "MetaData": {
            "Keys": [
                "gstreameraudiodecode"
            ],
            "Services": [
                "org.qt-project.qt.audiodecode"
            ]
        },
        "className": "QGstreamerAudioDecoderServicePlugin",
        "debug": false,
        "version": 328450
    }
    
    
    Got keys from plugin meta data ("gstreameraudiodecode")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/mediaservice/libgstcamerabin.so"
    Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/mediaservice/libgstcamerabin.so, metadata=
    {
        "IID": "org.qt-project.qt.mediaserviceproviderfactory/5.0",
        "MetaData": {
            "Keys": [
                "gstreamercamerabin"
            ],
            "Services": [
                "org.qt-project.qt.camera"
            ]
        },
        "className": "CameraBinServicePlugin",
        "debug": false,
        "version": 328450
    }
    
    
    Got keys from plugin meta data ("gstreamercamerabin")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/mediaservice/libgstmediacapture.so"
    Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/mediaservice/libgstmediacapture.so, metadata=
    {
        "IID": "org.qt-project.qt.mediaserviceproviderfactory/5.0",
        "MetaData": {
            "Keys": [
                "gstreamermediacapture"
            ],
            "Services": [
                "org.qt-project.qt.audiosource"
            ]
        },
        "className": "QGstreamerCaptureServicePlugin",
        "debug": false,
        "version": 328450
    }
    
    
    Got keys from plugin meta data ("gstreamermediacapture")
    QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/mediaservice/libgstmediaplayer.so"
    Found metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/mediaservice/libgstmediaplayer.so, metadata=
    {
        "IID": "org.qt-project.qt.mediaserviceproviderfactory/5.0",
        "MetaData": {
            "Keys": [
                "gstreamermediaplayer"
            ],
            "Services": [
                "org.qt-project.qt.mediaplayer"
            ]
        },
        "className": "QGstreamerPlayerServicePlugin",
        "debug": false,
        "version": 328450
    }
    
    
    Got keys from plugin meta data ("gstreamermediaplayer")
    QFactoryLoader::QFactoryLoader() checking directory path "/home/user/Documents/Qt Projects/Media-Player/build-Media-Player-Desktop-Release/mediaservice" ...
    loaded library "/usr/lib/x86_64-linux-gnu/qt5/plugins/mediaservice/libgstmediaplayer.so"
    
    (Media-Player:8039): GStreamer-CRITICAL **: gst_object_ref_sink: assertion 'GST_IS_OBJECT (object)' failed
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/x86_64-linux-gnu/qt5/plugins/resourcepolicy" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/home/user/Documents/Qt Projects/Media-Player/build-Media-Player-Desktop-Release/resourcepolicy" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/x86_64-linux-gnu/qt5/plugins/accessiblebridge" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/home/user/Documents/Qt Projects/Media-Player/build-Media-Player-Desktop-Release/accessiblebridge" ...
    QLibraryPrivate::unload succeeded on "/usr/lib/x86_64-linux-gnu/qt5/plugins/mediaservice/libgstmediaplayer.so" 
    QLibraryPrivate::unload succeeded on "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so" 
    QLibraryPrivate::unload succeeded on "/usr/lib/x86_64-linux-gnu/qt5/plugins/platformthemes/libqgtk2.so" 
    QLibraryPrivate::unload succeeded on "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so" 
    QLibraryPrivate::unload succeeded on "Xcursor" (faked)
    QLibraryPrivate::unload succeeded on "gnomevfs-2" (faked)
    QLibraryPrivate::unload succeeded on "gtk-x11-2.0" (faked)
    /home/user/Documents/Qt Projects/Media-Player/build-Media-Player-Desktop-Release/Media-Player exited with code 0
    

  • Lifetime Qt Champion

    What GStreamer package did you install ?



  • @6EQUJ5 ,

    Your log is not detail enough. You should enable Gstreamer debug, your current is just Qt.

    But I guest that, your current Gstreamer plugin is not enough to playback.

    One question, what kind of movie content you want to playback?(Mp4, WMV, H264, H265, MP3, ...)

    Best regards,
    Khoa



  • @SGaist I didn't install GStreamer. How to install? Specific instructions please the official GStreamer site doesn't help much at all for Debian.

    @KhoaTran-Programmer Firstly, the commands to check if GStreamer is installed doesn't work. How to install? Specifically. The official GStreamer site doesn't help at all for Debian. Also, I would want to play MP4, MP3, AVI, WMV, etc. All those common ones. Doesn't QMediaPlayer support most common ones?


  • Lifetime Qt Champion

    Because it's not their role. Use your distribution tools to install GStreamer.

    Specifically, apt-cache search to see what package are installed and apt-get install to install what you want.

    In your case, libgstreamer1.0-dev as well as all the 1.0 plugins packages.



  • @SGaist I did that and the same error happens.


  • Lifetime Qt Champion

    Can you play that file with the gstreamer tools directly ?



  • @SGaist How would I do that?


  • Lifetime Qt Champion

    gst-play-1.0 your_video_file



  • @SGaist The command doesn't exist. Even though I installed libgstreamer1.0-dev.


  • Lifetime Qt Champion

    That's the development package to be able to use the library in your own projects. You need to install the GStreamer tools.



  • @SGaist What package do I need to install for the GStreamer tools?


  • Lifetime Qt Champion

    Please learn to use the tools from your distribution apt-cache search gstreamer | grep tools.



  • @SGaist I installed all the packages that came up with that command. gst-play-1.0 still doesn't work.


  • Lifetime Qt Champion

    What doesn't work ?

    You can't read the file using the command ?



  • @SGaist The command still doesn't exist according to the terminal even with sudo.


  • Lifetime Qt Champion

    Seriously, did you even try to search where that file could be found ?

    In this case it's the package gstreamer1.0-plugins-base-apps and the tools package is a dependency of that one.



  • @SGaist I'm sorry. I may be at least an amateur programmer, but I'm definitely not a Linux expert, so I lack knowledge. I tried googling to get gst-play-1.0 to work but came up with nothing.

    Installing gstreamer1.0-plugins-base-apps allowed me to use the gst-play-1.0 command. But, when I try to play a video file (MP4) the same thing happens! I get logged out!


  • Lifetime Qt Champion

    Then you have determined that it's not a Qt problem. There's something fishy going on with your machine.



  • @SGaist It works fine in Windows 10 though. What could possibly be wrong with Debian Linux?


  • Lifetime Qt Champion

    You are comparing apple to oranges. Both are completely different OSs with completely different multimedia backends.

    I don't know what is going on with your Debian but you sure have something either misconfigured or buggy. However, it's not something Qt related. You should check with the Debian folks.


  • Qt Champions 2019

    @6EQUJ5 I would guess bad graphics driver.
    You could check the output of dmesg command. In general you should ask this question in a Debian forum or mailing list and attach information about your system (especially graphics hardware).



  • @SGaist I will do that.

    @jsulm The output of sudo dmesg is here: https://pastebin.com/VY243fPh

    Also, I will ask for help on Debian mailing list/forum with the output.


  • Lifetime Qt Champion

    Compare it with the output of dmesg after you got kicked of your session.



  • @SGaist New output (after getting logged out): https://pastebin.com/yJK4tFeQ

    Output of diff dmesgOutputBeforeLogout.txt dmesgOutputAfterLogout.txt: https://pastebin.com/5jGtEiUd (differences between two outputs)