Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. Gstreamer-based video streaming on Android
Forum Updated to NodeBB v4.3 + New Features

Gstreamer-based video streaming on Android

Scheduled Pinned Locked Moved Unsolved Mobile and Embedded
6 Posts 2 Posters 1.6k Views 1 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.
  • H Offline
    H Offline
    Hs293Go
    wrote on last edited by Hs293Go
    #1

    Hi! I am looking to implement UDP H.264 video streaming on Android with Qt. A bit of Google-fu later I am following these leads:

    1. QtGstreamer seems to be an easy way out but it is no longer maintained. Is it risky to use QtGstreamer now? Does QtGstreamer work on android?

    2. The coversation in Display Gstreamer video on Android hints at using GstVideoOverlay over a Qt window is difficult on Android because the winID() function doesn't give useful window ID values. Is this a dead end or is there any way I can get a valid window ID on android?

    3. The blogpost Qt+Gstreamer+DDS+Android seems to hint that I can use qmlglsink to overlay gstreamer video over a QML element. This blogpost is cryptic to a multimedia noob like me. Does anybody recognize what this blogger is implementing? Can his results be easily reproduced?

    4. The conversation at qmlglsink alternative seems to say that QMediaPlayer can handle arbitrary gstreamer pipelines. Does arbitrary gstreamer pipelines include udp pipelines? How about compatibility with android

    Any answer to any one of my above questions will be greatly appreciated!

    I'd like to address two specific users too: @SGaist You mentioned QMediaPlayer can handle arbitrary gstreamer pipelines. Do you have an answer to my question no. 4, i.e. does this approach work on Android? @LuJoRi I see that you seem to have found a solution in the old thread. If you are still around, could you possibly offer me some help?

    The pipeline I'm using to play my stream on my Linux box is

    gst-launch-1.0 -v udpsrc port=$PORT ! application/x-rtp, encoding-name=H264, payload=96 ! rtph264depay ! h264parse ! avdec_h264 ! autovideosink
    

    Thanks!!

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

      Hi and welcome to devnet,

      To try to keep things simple, I'd start by building the Qt GStreamer backend. With it and a recent version of Qt, you might be able to use QMediaPlayer to play your stream with a custom pipeline.

      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
      • H Offline
        H Offline
        Hs293Go
        wrote on last edited by
        #3

        By building the Qt GStreamer backend, do you mean building GStreamer and all its plugins for Android? I hope you are not referencing the Qt-Gstreamer library since that is unsupported for a few years already.

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

          AFAIK GStreamer has a build for Android.

          I am talking about the GStreamer backend of Qt Multimedia.

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

          H 1 Reply Last reply
          0
          • SGaistS SGaist

            AFAIK GStreamer has a build for Android.

            I am talking about the GStreamer backend of Qt Multimedia.

            H Offline
            H Offline
            Hs293Go
            wrote on last edited by
            #5

            @SGaist Thanks for the tip! I get the idea in general, but please clarify: By GStreamer backend, do you mean the GStreamer libraries for Android like what's mentioned here? Is it analogous to having libgstreamer-1.0.so on Linux?

            At any rate I'm happy to read the docs, but if you could point me to the relevant page, or better any tutorial that shows me the steps, then I'd make progress much faster. Thanks!

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

              No, QtMultimedia uses different plugins depending on the platform. In the case that interests you, you will need the plugin based on GStreamer. So you need two things:

              • GStreamer built for Androïd
              • The QtMultimedia plugin using GStreamer

              You do not need to build Qt completely for that, just the plugin.

              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