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

The mediaplayer for no-xcb environment



  • Recently, I reach this scenario:

    I have a non-xwindow embedded linux. I wish to play video on it, which supports gstreamer1.0 and eglfs already. So far the pipeline for the video source works fine. But, I cannot use QVideoWidget to act as the output render.
    QVideoWidget works good in my desktop linux, surely under XWindow, xcb. But I have only eglfs in my embedded linux platform. Somehow, QVideoWidget failed at setVideoOutput under eglfs.
    Is there anyone have the experience with a gstreamer video output in eglfs or other no-xcb? Which widget can be used for a video render in it?
    I heard that libVLC also provided such functionality. Does libVLC play video based on gstreamer?
    Any one and any help is appreciated! Great thanks!



  • Forgot to mention that I am using Qt5.3. So, phonon is out of my project.



  • Qt5.3 does not support gstreamer-1.0
    gstreamer-1.0 plugin may appear in Qt5.5

    AFAIK(As Far As I Know) libVLC does not use gstreamer.
    If you are not bound to gstreamer there is a "VLC-Qt library":http://projects.tano.si/vlc-qt/

    If you can play video using gstreamer then you may try to use appsink and paint video frames on QWidget.

    Another option is to use "Qt-Gstreamer library":http://gstreamer.freedesktop.org/modules/qt-gstreamer.html



  • Hi Andreyc,

    Thanks a lot for your information!
    Yes, as you said, I could not find out any gstreamer-relationship in VLC's code. That's sad. :(
    And gstreamer-1.0 is not the native supported maybe, I updated the code of the module. Anyway, it looks fine so far.
    You mentioned appsink. I will search and investigate the code for it. Appreciate for it. I hope it will give me the result. In the previous research, I found only "xvimagesink" but it works for XWindow.
    A quick question. Gstreamer already exists in QtMultiMedia, why there is a "Qt-Gstreamer" library separately?
    Thanks again.


  • Lifetime Qt Champion

    Hi,

    gstreamer is a backend in QtMultimedia. On the other hand QtGStreamer is a wrapper library were you use gstreamer. With it you e.g. build the pipeline that you want to use. It provides various sync to paint on widget/QML/OpenGL widget. Note that the QtGstreamer library is not part of the Qt distribution it's an independent project


Log in to reply