Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. Video plays on a new Window while launched through gstreamer in Qt6 qml application
Forum Updated to NodeBB v4.3 + New Features

Video plays on a new Window while launched through gstreamer in Qt6 qml application

Scheduled Pinned Locked Moved Unsolved QML and Qt Quick
20 Posts 5 Posters 1.6k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • JoeCFDJ JoeCFD

    @SGaist it is qml6glsink for Qt6 while qmlglsink is for Q5

    SGaistS Offline
    SGaistS Offline
    SGaist
    Lifetime Qt Champion
    wrote on last edited by
    #4

    @JoeCFD good point. The logic of the example still applies though.

    There should be a new example for Qt 6 written :-)

    Interested in AI ? www.idiap.ch
    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

    1 Reply Last reply
    0
    • SGaistS SGaist

      Hi,

      Your pipeline does not reference any sink hence it's opening a new window.

      You should check the qmlsink example from gstreamer.

      T Offline
      T Offline
      Thanush
      wrote on last edited by
      #5

      Hi @SGaist , I tried to reuse the code in mine and the build was success but while running it was crashing with an error

      Bail out! ERROR:../../main.cpp:35:int main(int, char**): assertion failed: (src && glupload && sink)
      
      jsulmJ 1 Reply Last reply
      0
      • T Thanush

        Hi @SGaist , I tried to reuse the code in mine and the build was success but while running it was crashing with an error

        Bail out! ERROR:../../main.cpp:35:int main(int, char**): assertion failed: (src && glupload && sink)
        
        jsulmJ Offline
        jsulmJ Offline
        jsulm
        Lifetime Qt Champion
        wrote on last edited by
        #6

        @Thanush So, did you check what is in line 35 in main.cpp?

        https://forum.qt.io/topic/113070/qt-code-of-conduct

        T 1 Reply Last reply
        0
        • jsulmJ jsulm

          @Thanush So, did you check what is in line 35 in main.cpp?

          T Offline
          T Offline
          Thanush
          wrote on last edited by
          #7

          @jsulm , Apologies..

                  GstElement *pipeline = gst_pipeline_new (NULL);
                  GstElement *src = gst_element_factory_make ("videotestsrc", NULL);
                  GstElement *glupload = gst_element_factory_make ("glupload", NULL);
                  GstElement *sink = gst_element_factory_make ("qmlglsink", NULL);
          
                  **g_assert (src && glupload && sink);**//This line caused the error
          
                  gst_bin_add_many (GST_BIN (pipeline), src, glupload, sink, NULL);
                  gst_element_link_many (src, glupload, sink, NULL);
          
          jsulmJ T 2 Replies Last reply
          0
          • T Thanush

            @jsulm , Apologies..

                    GstElement *pipeline = gst_pipeline_new (NULL);
                    GstElement *src = gst_element_factory_make ("videotestsrc", NULL);
                    GstElement *glupload = gst_element_factory_make ("glupload", NULL);
                    GstElement *sink = gst_element_factory_make ("qmlglsink", NULL);
            
                    **g_assert (src && glupload && sink);**//This line caused the error
            
                    gst_bin_add_many (GST_BIN (pipeline), src, glupload, sink, NULL);
                    gst_element_link_many (src, glupload, sink, NULL);
            
            jsulmJ Offline
            jsulmJ Offline
            jsulm
            Lifetime Qt Champion
            wrote on last edited by
            #8

            @Thanush said in Video plays on a new Window while launched through gstreamer in Qt6 qml application:

            g_assert (src && glupload && sink);

            So, at least one of these 3 failed. You can check which one.

            https://forum.qt.io/topic/113070/qt-code-of-conduct

            1 Reply Last reply
            0
            • T Thanush

              @jsulm , Apologies..

                      GstElement *pipeline = gst_pipeline_new (NULL);
                      GstElement *src = gst_element_factory_make ("videotestsrc", NULL);
                      GstElement *glupload = gst_element_factory_make ("glupload", NULL);
                      GstElement *sink = gst_element_factory_make ("qmlglsink", NULL);
              
                      **g_assert (src && glupload && sink);**//This line caused the error
              
                      gst_bin_add_many (GST_BIN (pipeline), src, glupload, sink, NULL);
                      gst_element_link_many (src, glupload, sink, NULL);
              
              T Offline
              T Offline
              Thanush
              wrote on last edited by
              #9

              @Thanush said in Video plays on a new Window while launched through gstreamer in Qt6 qml application:

              GstElement *sink = gst_element_factory_make ("qmlglsink", NULL);

              This returns a null pointer, I'm not sure why

              JoeCFDJ 1 Reply Last reply
              0
              • B Offline
                B Offline
                Bob64
                wrote on last edited by
                #10

                I know nothing about this, but wasn't it pointed out above that it should be "qml6glsink"?

                1 Reply Last reply
                3
                • T Thanush

                  @Thanush said in Video plays on a new Window while launched through gstreamer in Qt6 qml application:

                  GstElement *sink = gst_element_factory_make ("qmlglsink", NULL);

                  This returns a null pointer, I'm not sure why

                  JoeCFDJ Offline
                  JoeCFDJ Offline
                  JoeCFD
                  wrote on last edited by JoeCFD
                  #11

                  @Thanush said in Video plays on a new Window while launched through gstreamer in Qt6 qml application:

                  qmlglsink

                  What is your OS? What is your gstreamer version? In order to use qml6glsink(or qmlglsink), you need to install GStreamer Good Plug-in. It is likely that gstreamer good plug-in does not include qml6glsink because it needs qt 6 to be built. In this case, you have to build gstreamer with Qt6 by yourself. The old gstreamer versions do not have qml6glsink.

                  T 1 Reply Last reply
                  0
                  • JoeCFDJ JoeCFD

                    @Thanush said in Video plays on a new Window while launched through gstreamer in Qt6 qml application:

                    qmlglsink

                    What is your OS? What is your gstreamer version? In order to use qml6glsink(or qmlglsink), you need to install GStreamer Good Plug-in. It is likely that gstreamer good plug-in does not include qml6glsink because it needs qt 6 to be built. In this case, you have to build gstreamer with Qt6 by yourself. The old gstreamer versions do not have qml6glsink.

                    T Offline
                    T Offline
                    Thanush
                    wrote on last edited by
                    #12

                    @JoeCFD I am using Ubuntu and the gstreamer version is version 1.20.3. I also tried with qml6glsink and qmlglsink and the result is same

                    1 Reply Last reply
                    0
                    • SGaistS Offline
                      SGaistS Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on last edited by
                      #13

                      Did you install the GStreamer plugin packages ?

                      Interested in AI ? www.idiap.ch
                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                      T 2 Replies Last reply
                      0
                      • SGaistS SGaist

                        Did you install the GStreamer plugin packages ?

                        T Offline
                        T Offline
                        Thanush
                        wrote on last edited by
                        #14

                        @SGaist These are the gstreamer packages present in my ubuntu

                        ii  gir1.2-gstreamer-1.0:amd64                 1.20.3-0ubuntu1                         amd64        GObject introspection data for the GStreamer library
                        ii  gstreamer1.0-alsa:amd64                    1.20.1-1ubuntu0.1                       amd64        GStreamer plugin for ALSA
                        ii  gstreamer1.0-clutter-3.0:amd64             3.0.27-2ubuntu1                         amd64        Clutter PLugin for GStreamer 1.0
                        ii  gstreamer1.0-gl:amd64                      1.20.1-1ubuntu0.1                       amd64        GStreamer plugins for GL
                        ii  gstreamer1.0-gtk3:amd64                    1.20.3-0ubuntu1.1                       amd64        GStreamer plugin for GTK+3
                        ii  gstreamer1.0-libav:amd64                   1.20.3-0ubuntu1                         amd64        ffmpeg plugin for GStreamer
                        ii  gstreamer1.0-packagekit                    1.2.5-2ubuntu2                          amd64        GStreamer plugin to install codecs using PackageKit
                        ii  gstreamer1.0-pipewire:amd64                0.3.48-1ubuntu3                         amd64        GStreamer 1.0 plugin for the PipeWire multimedia server
                        ii  gstreamer1.0-plugins-bad:amd64             1.20.3-0ubuntu1.1                       amd64        GStreamer plugins from the "bad" set
                        ii  gstreamer1.0-plugins-base:amd64            1.20.1-1ubuntu0.1                       amd64        GStreamer plugins from the "base" set
                        ii  gstreamer1.0-plugins-base-apps             1.20.1-1ubuntu0.1                       amd64        GStreamer helper programs from the "base" set
                        ii  gstreamer1.0-plugins-good:amd64            1.20.3-0ubuntu1.1                       amd64        GStreamer plugins from the "good" set
                        ii  gstreamer1.0-plugins-ugly:amd64            1.20.1-1                                amd64        GStreamer plugins from the "ugly" set
                        ii  gstreamer1.0-pulseaudio:amd64              1.20.3-0ubuntu1.1                       amd64        GStreamer plugin for PulseAudio (transitional package)
                        ii  gstreamer1.0-tools                         1.20.3-0ubuntu1                         amd64        Tools for use with GStreamer
                        ii  gstreamer1.0-x:amd64                       1.20.1-1ubuntu0.1                       amd64        GStreamer plugins for X11 and Pango
                        ii  libgstreamer-gl1.0-0:amd64                 1.20.1-1ubuntu0.1                       amd64        GStreamer GL libraries
                        ii  libgstreamer-plugins-bad1.0-0:amd64        1.20.3-0ubuntu1.1                       amd64        GStreamer libraries from the "bad" set
                        ii  libgstreamer-plugins-base1.0-0:amd64       1.20.1-1ubuntu0.1                       amd64        GStreamer libraries from the "base" set
                        ii  libgstreamer-plugins-base1.0-dev:amd64     1.20.1-1ubuntu0.1                       amd64        GStreamer development files for libraries from the "base" set
                        ii  libgstreamer-plugins-good1.0-0:amd64       1.20.3-0ubuntu1.1                       amd64        GStreamer development files for libraries from the "good" set
                        ii  libgstreamer-plugins-good1.0-dev           1.20.3-0ubuntu1.1                       amd64        GStreamer development files for libraries from the "good" set
                        ii  libgstreamer1.0-0:amd64                    1.20.3-0ubuntu1                         amd64        Core GStreamer libraries and elements
                        ii  libgstreamer1.0-dev:amd64                  1.20.3-0ubuntu1                         amd64        GStreamer core development files
                        
                        
                        1 Reply Last reply
                        0
                        • SGaistS SGaist

                          Did you install the GStreamer plugin packages ?

                          T Offline
                          T Offline
                          Thanush
                          wrote on last edited by
                          #15

                          @SGaist Hi! Does qmlglsink/qml6glsink support in qt6.7? Because I am getting a qml error

                          QQmlApplicationEngine failed to load component
                          qrc:/untitled8/main.qml:4:1: module "org.freedesktop.gstreamer.GstGLQt6VideoItem" is not installed
                          

                          Once I comment out this line in main.qml, the application is running but no video is displaying.

                          SGaistS 1 Reply Last reply
                          0
                          • T Thanush

                            @SGaist Hi! Does qmlglsink/qml6glsink support in qt6.7? Because I am getting a qml error

                            QQmlApplicationEngine failed to load component
                            qrc:/untitled8/main.qml:4:1: module "org.freedesktop.gstreamer.GstGLQt6VideoItem" is not installed
                            

                            Once I comment out this line in main.qml, the application is running but no video is displaying.

                            SGaistS Offline
                            SGaistS Offline
                            SGaist
                            Lifetime Qt Champion
                            wrote on last edited by
                            #16

                            @Thanush It's not a Qt 6 issue, it's a GStreamer issue. I think the version you are using is too old and does not contain the class yet.

                            Interested in AI ? www.idiap.ch
                            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                            T 1 Reply Last reply
                            0
                            • SGaistS SGaist

                              @Thanush It's not a Qt 6 issue, it's a GStreamer issue. I think the version you are using is too old and does not contain the class yet.

                              T Offline
                              T Offline
                              Thanush
                              wrote on last edited by
                              #17

                              Hi @SGaist .So that was the problem? Update the Gstreamer to latest version and this issue would be resolved?

                              1 Reply Last reply
                              0
                              • SGaistS Offline
                                SGaistS Offline
                                SGaist
                                Lifetime Qt Champion
                                wrote on last edited by
                                #18

                                That would be it, yes.

                                Interested in AI ? www.idiap.ch
                                Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                T 1 Reply Last reply
                                0
                                • SGaistS SGaist

                                  That would be it, yes.

                                  T Offline
                                  T Offline
                                  Thanush
                                  wrote on last edited by
                                  #19

                                  Hi @SGaist, I see that the gstreamer version contains the qml6glsink, but after downloading from the https://gstreamer.freedesktop.org/src/gstreamer/ .... but i am not sure how it needs to be configured against the old version of gstreamer present in ubuntu..

                                  1 Reply Last reply
                                  0
                                  • SGaistS Offline
                                    SGaistS Offline
                                    SGaist
                                    Lifetime Qt Champion
                                    wrote on last edited by
                                    #20

                                    You would have to build the plugin yourself and link against it.

                                    Interested in AI ? www.idiap.ch
                                    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                    1 Reply Last reply
                                    0

                                    • Login

                                    • Login or register to search.
                                    • First post
                                      Last post
                                    0
                                    • Categories
                                    • Recent
                                    • Tags
                                    • Popular
                                    • Users
                                    • Groups
                                    • Search
                                    • Get Qt Extensions
                                    • Unsolved