QWebKit and hdhomerun streaming
-
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?
-
Hi!
what is the best way to play the video/audio stream into a QML application?
Have you tried Video QML Type?
-
@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"." -
@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 -
@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:5000Of course I need to solve the issue using vlc first. Then I could try with QML.
-
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.
-
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