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. QWebKit and hdhomerun streaming
QtWS25 Last Chance

QWebKit and hdhomerun streaming

Scheduled Pinned Locked Moved Unsolved Mobile and Embedded
qmlvideo streamingqwebkit
10 Posts 3 Posters 4.9k Views
  • 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.
  • M Offline
    M Offline
    Mark81
    wrote on 22 May 2016, 08:10 last edited by
    #1

    Hello,
    in a QML application I want to show the video stream from an hdhomerun product:

    http://www.silicondust.com/products/hdhomerun/hdhomerun-connect-eu/

    Here the API documentation:

    https://www.silicondust.com/hdhomerun/hdhomerun_development.pdf

    About video streaming it says:

    Video stream:
    Option 1: libhdhomerun video socket support:
    The device-video API handles the video UDP socket, target configuration, buffering, sequence checking, etc.
    After setting the channel call hdhomerun_device_stream_start() to create the video UDP socket and start the video service thread.
    Call hdhomerun_device_stream_recv() periodically to receive the video stream.
    The hdhomerun_device_stream_start/stop() APIs call hdhomerun_device_set_tuner_target() internally as needed.

    Option 2: external video socket support:
    For applications with existing UDP or RTP video support use
    hdhomerun_device_set_tuner_target() to set the target to the listening UDP port.
    When streaming is no longer required use the same function to set the target to “none”.

    If I open the direct link with a desktop browser I see the video streaming.
    Doing the same with the QWebKit leads to the following warning:

    ** (QtWebProcess:1036): WARNING **: add element stream
    

    and no video nor audio.

    In general, to follow the direction given by the producer, what is the best way to play the video/audio stream into a QML application?

    1 Reply Last reply
    0
    • ? Offline
      ? Offline
      A Former User
      wrote on 22 May 2016, 11:10 last edited by
      #2

      Hi!

      what is the best way to play the video/audio stream into a QML application?

      Have you tried Video QML Type?

      M 1 Reply Last reply 23 May 2016, 07:26
      0
      • ? A Former User
        22 May 2016, 11:10

        Hi!

        what is the best way to play the video/audio stream into a QML application?

        Have you tried Video QML Type?

        M Offline
        M Offline
        Mark81
        wrote on 23 May 2016, 07:26 last edited by
        #3

        @Wieland I'm not sure if you're talking about use Video QML to display the http stream directly, in this way:

        Video {
                anchors.centerIn: parent
                width: 800
                height: 600
                source: "http://192.168.1.130:5004/auto/v10"
                autoLoad: true
                autoPlay: true
            }
        

        It returns this error:

        GStreamer; Unable to pause - "http://192.168.1.130:5004/auto/v10"
        GStreamer; Unable to pause - "http://192.168.1.130:5004/auto/v10"
        Error: "No URI handler implemented for "http"."

        ? 1 Reply Last reply 23 May 2016, 07:47
        0
        • M Mark81
          23 May 2016, 07:26

          @Wieland I'm not sure if you're talking about use Video QML to display the http stream directly, in this way:

          Video {
                  anchors.centerIn: parent
                  width: 800
                  height: 600
                  source: "http://192.168.1.130:5004/auto/v10"
                  autoLoad: true
                  autoPlay: true
              }
          

          It returns this error:

          GStreamer; Unable to pause - "http://192.168.1.130:5004/auto/v10"
          GStreamer; Unable to pause - "http://192.168.1.130:5004/auto/v10"
          Error: "No URI handler implemented for "http"."

          ? Offline
          ? Offline
          A Former User
          wrote on 23 May 2016, 07:47 last edited by A Former User
          #4

          @Mark81 The PDF you posted says that the device can stream via UDP/RTP and thus e.g. VLC can receive the stream in this way. Same should apply to GStreamer so instead of "http" try with "rtp".

          M 1 Reply Last reply 23 May 2016, 08:53
          1
          • ? A Former User
            23 May 2016, 07:47

            @Mark81 The PDF you posted says that the device can stream via UDP/RTP and thus e.g. VLC can receive the stream in this way. Same should apply to GStreamer so instead of "http" try with "rtp".

            M Offline
            M Offline
            Mark81
            wrote on 23 May 2016, 08:53 last edited by
            #5

            @Wieland the error is pretty the same:

            GStreamer; Unable to pause - "rtp://192.168.1.130:5004/auto/v10"
            Error: "No URI handler implemented for "rtp"."

            I double checked I have the rtp plugins installed in /usr/lib/gstreamer-1.0/

            libgstalsa.so
            libgstaudioconvert.so
            libgstaudioparsers.so
            libgstaudioresample.so
            libgstaudiotestsrc.so
            libgstautodetect.so
            libgstavi.so
            libgstcoreelements.so
            libgstcoretracers.so
            libgstdebug.so
            libgstid3demux.so
            libgstisomp4.so
            libgstlibav.so
            libgstmpegpsdemux.so
            libgstnavigationtest.so
            libgstomx.so
            libgstplayback.so
            libgstpulse.so
            libgstrtmp.so
            libgstrtp.so
            libgstrtpmanager.so
            libgstrtsp.so
            libgstsouphttpsrc.so
            libgsttcp.so
            libgsttypefindfunctions.so
            libgstudp.so
            libgstvideo4linux2.so
            libgstvideoscale.so
            libgstvideotestsrc.so
            libgstvolume.so
            libgstwavparse.so
            libgstx264.so

            ? 1 Reply Last reply 23 May 2016, 08:56
            0
            • M Mark81
              23 May 2016, 08:53

              @Wieland the error is pretty the same:

              GStreamer; Unable to pause - "rtp://192.168.1.130:5004/auto/v10"
              Error: "No URI handler implemented for "rtp"."

              I double checked I have the rtp plugins installed in /usr/lib/gstreamer-1.0/

              libgstalsa.so
              libgstaudioconvert.so
              libgstaudioparsers.so
              libgstaudioresample.so
              libgstaudiotestsrc.so
              libgstautodetect.so
              libgstavi.so
              libgstcoreelements.so
              libgstcoretracers.so
              libgstdebug.so
              libgstid3demux.so
              libgstisomp4.so
              libgstlibav.so
              libgstmpegpsdemux.so
              libgstnavigationtest.so
              libgstomx.so
              libgstplayback.so
              libgstpulse.so
              libgstrtmp.so
              libgstrtp.so
              libgstrtpmanager.so
              libgstrtsp.so
              libgstsouphttpsrc.so
              libgsttcp.so
              libgsttypefindfunctions.so
              libgstudp.so
              libgstvideo4linux2.so
              libgstvideoscale.so
              libgstvideotestsrc.so
              libgstvolume.so
              libgstwavparse.so
              libgstx264.so

              ? Offline
              ? Offline
              A Former User
              wrote on 23 May 2016, 08:56 last edited by
              #6

              @Mark81 Does it work with VLC?

              M 1 Reply Last reply 23 May 2016, 11:19
              0
              • ? A Former User
                23 May 2016, 08:56

                @Mark81 Does it work with VLC?

                M Offline
                M Offline
                Mark81
                wrote on 23 May 2016, 11:19 last edited by
                #7

                @Wieland I was just trying this!
                First of all, this is the code I use to setup the stream:

                hdhomerun_discover_device_t devices[1];
                hdhomerun_device_t *tuner;
                bool found = hdhomerun_discover_find_devices_custom_v2(0, HDHOMERUN_DEVICE_TYPE_TUNER, HDHOMERUN_DEVICE_ID_WILDCARD, devices, 1);
                if (found) {
                    tuner = hdhomerun_device_create(HDHOMERUN_DEVICE_ID_WILDCARD, 0, 0, NULL);
                    hdhomerun_device_set_tuner_channel(tuner, "auto:666000000");
                    hdhomerun_device_set_tuner_program(tuner, "301");
                    hdhomerun_device_set_tuner_target(tuner, "udp://192.168.1.131:5000");
                    hdhomerun_device_stream_start(tuner);
                }
                

                I'm expecting an udp stream towards ip 192.168.1.131 - which is the machine where I can start vlc. Nothing happens, though the log says the stream is ok:

                Tuner: tuner0 tuning 15 TELECITY 7 Gold (t8qam64:666MHz-301)
                Tuner: tuner0 streaming udp to 192.168.1.129:5000

                Of course I need to solve the issue using vlc first. Then I could try with QML.

                1 Reply Last reply
                0
                • M Offline
                  M Offline
                  Mark81
                  wrote on 23 May 2016, 11:54 last edited by Mark81
                  #8

                  Of course I need to solve the issue using vlc first. Then I could try with QML.

                  Solved.
                  I need to add "no clear" to the stream setup otherwise it immediately closes the streaming if there are no client listening.

                  Now, vlc plays the udp/rtp stream.
                  Using the Video QML type I get the following:

                  source: "rtp://localhost:5000"
                  qml: No URI handler implemented for "rtp".
                  
                  source: "udp//localhost:5000"
                  qml: UDP source timeout
                  

                  I'm afraid my gstreamer installation lacks for some other rtp plugins. On the other and, the udp syntax might be wrong.

                  1 Reply Last reply
                  0
                  • M Offline
                    M Offline
                    Mark81
                    wrote on 26 May 2016, 17:50 last edited by
                    #9

                    I confirm that vlc plays the UDP stream while the Video QML Type returns:

                    qml: UDP source timeout

                    1 Reply Last reply
                    0
                    • sinmkiS Offline
                      sinmkiS Offline
                      sinmki
                      wrote on 11 Aug 2016, 19:45 last edited by
                      #10

                      Hi, I'm having the same issue regarding the QML Video RTP source :

                      GStreamer; Unable to pause - "rtp://@231.1.128.20:8854"
                      No URI handler implemented for \"rtp\"."
                      

                      Did you eventually got this video stream to run on Qt @Mark81 ? I'm also guessing some unsupported, most probably lacking gstream stuff.. still looking into it. I use Qt5.7.0

                      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