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
Forum Updated to NodeBB v4.3 + New Features

QWebKit and hdhomerun streaming

Scheduled Pinned Locked Moved Unsolved Mobile and Embedded
qmlvideo streamingqwebkit
10 Posts 3 Posters 4.9k Views 3 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.
  • 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