Important: Please read the Qt Code of Conduct -

Yocto Qt multimedia QML plugins missing

  • Hello
    I am working on Linux embedded board with iMX6ULL and Yocto.
    I want to use QML multimedia elements in my application, but QML multimedia plugins are not generated during bitbake build process.
    I have following QT elements added to my Linux image:

       qtbase \
       qtbase-plugins \
       qtserialport \
       qt5-env \
       libxkbcommon \
       qtquickcontrols \
       qtquickcontrols2 \
       qtmultimedia \
       qtmultimedia-plugins \
       qtmultimedia-qmlplugins \
       gstreamer1.0 \
       gstreamer1.0-libav \
       gstreamer1.0-plugins-good \
       gstreamer1.0-plugins-bad \
       gstreamer1.0-plugins-imx \

    qtbase is build with config(framebuffer output, no X11/wayland):

    PACKAGECONFIG_append = " no-opengl accessibility fontconfig linuxfb libinput xkbcommon"
    PACKAGECONFIG_remove = " examples tests gbm eglfs gl gles2 kms"

    And qt multimedia with gstreamer backend:

    PACKAGECONFIG_append = "gstreamer"

    Qt QML modules like qtquickcontrols2 works. I can run gallery demo, but any other QML example with multimedia module returns:

    QQmlApplicationEngine failed to load component
    qrc:/main.qml:3 module "QtMultimedia" is not installed

    By the way camera example with standard qtwidgets - no QML works.

    My issue on github

    Maybe I am doing something wrong, maybe it's a bug. How to get QML multimedia plugins on Linux embedded with Yocto?

  • @Qb4-dev Did you add QT += multimedia to your .pro file? Didn't really look much into the git hub link, but on a quick check I didn't find any .pro to see for myself.

  • Yes, i have QT += multimedia in my .pro file. I am trying to run programs from QT examples, but I haven't QML multimedia plugins inside my Linux embedded system. In /usr/lib/qml there is no QtMultimedia directory with multimedia plugins needed to use QML multimedia elements like Camera or MediaPlayer

    root# opkg files qtmultimedia-qmlplugins
    Package qtmultimedia-qmlplugins (5.12.3+git0+64981aee3b-r0) is installed on root and has the following files:

    Doesn't return any installed file.

  • Hi,
    are you sure that, you have installed qtmultimedia? it is not included inside default packages.

    sudo apt-get install qtmultimedia5-* qml-module-qtmultimedia 

  • @David_001 Yes, qt multimedia examples works with qtwidgets, but not with QML because of QML plugins are missing.
    It is custom Linux distro generated using Yocto. There is no sudo and apt-get.
    The reason why there is no qml plugiuns is probably that iMX6ULL doesn't have GPU and not support OpenGL which seems to be required to build qtmultimedia QML plugins

  • Do you see something there usr/lib/qml/QtMultimedia ?
    upd: ok, I see, it is -no-opengl

    yes, QML MediaPlayer requires to have opengl,

    so you use linuxfb?
    There is still possible to use Qt Multimedia, (but using gstreamer and custom video sinks or pipeline).
    qtmultimediaquicktools module is not built without opengl, it contains qml renderers, but also not for opengl.

    And qml imports are also not built because missing qtmultimediaquicktools.

    So if you really want to use MediaPlayer in QML, either enable opengl (and do not use it, if it is not needed) or expose cpp objects to QML manually and use QMediaPlayer to set custom video sinks/pipeline to render to default overlay, not a QML item.

  • You forgot space in

    PACKAGECONFIG_append = "gstreamer"

    it should be:

    PACKAGECONFIG_append = " gstreamer"

    And as @VaL-Doroshchuk mentioned, opengl should be enabled, another thing is that you should better switch to eglfs plugin instead linuxfb, AFAIK imx6ULL have support for it.

Log in to reply