GNOME Bugzilla – Bug 765986
adaptivedemux: Provide API for being able to set properties on internal HTTP (and other) sources
Last modified: 2018-11-03 13:50:39 UTC
I hope you will forgive me that I'm not good at English. I have been using the version 1.8.0 of gstreamer. Now, I am building a pipeline to play the Http Live Streaming(HLS) video. the http protocol can play on this pipeline. gst-launch-1.0 souphttpsrc location=http://path/to/hls.m3u8 ! decodebin ! videoconvert ! autovideosink but, https protocol can't play. gst-launch-1.0 souphttpsrc ssl-strict=false location=https://path/to/hls.m3u8 ! decodebin ! videoconvert ! autovideosink By the way, in the case of the mp4 can be played on http protocol. gst-launch-1.0 souphttpsrc ssl-strict=false location=https://path/to/movie.mp4 ! decodebin ! videoconvert ! autovideosink Please pointed out if there is a mistake to building a pipeline.
How does it fail? Please use playbin for HLS, it will be difficult to make HLS work with just decodebin.
The problem is probably the ssl-strict=false. hlsdemux will download the fragments without that property set I assume you have an invalid SSL certificate or at least one for which the CA is not trusted by libsoup/glib/gnutls?
thanks for comment. gst-launch-1.0 souphttpsrc ssl-strict=false location=https://path/to/hls.m3u8 ! decodebin ! videoconvert ! autovideosink Failure reason of this pipeline is this. unacceptable tls certificate (6) ,url:https://path/to/hls.ts , Redirect to: (NULL) gst-launch-1.0 souphttpsrc location=https://path/to/hls.m3u8 ! decodebin ! videoconvert ! autovideosink Failure reason of this pipeline is this. unacceptable tls certificate (6) ,url:https://path/to/hls.m3u8 , Redirect to: (NULL) but even with this pipeline failed. gst-launch-1.0 playbin uri=https://path/to/hls.m3u8 Failed tried also pattern using hlsdemux. gst-launch-1.0 souphttpsrc location=https://path/to/hls.m3u8 ! hlsdemux ! tsdemux ! h264parse ! avdec_h264 ! videoconvert ! autovideosink I examined the hlsdemux using the gst-inspect-1.0 However, seems to Properties did not find it. SSL certificate is considered potentially invalid. However, mp4 can be played on https protocols.
Well, that's exactly what I say :) hlsdemux creates new HTTP sources for downloading the fragments (and also refreshing the m3u8 manifest). Only the initial manifest is downloaded by the souphttpsrc where you set the property. For the other HTTP sources inside hlsdemux we currently don't have a way to easily set their properties. For now the best would be if you make sure to generate a valid SSL certificate. Even if it's signed by a CA you created yourself, you just have to make it available on all machines. Without, HTTPS seems rather useless.
I think there's already a bug somewhere for hlsdemux/adaptivedemux to transfer misc state from the httpsrc to the internal souphttpsrc.
Bug #751372 seems to be the closest to that, but more limited as it is specific to some properties.
To sum it all up、 Only to build the pipeline or is not able to play ? Server-side SSL certificate is what has been properly issued . It is not Self-signed certificate. It https://path/to/hls.m3u8 is correct is confirmed in VLC media player. [VLC media player] https://www.videolan.org/vlc/index.html
Two types of log also leave attached . gst-launch-1.0 souphttpsrc ssl-strict=false location=https://path/to/hls.m3u8 ! hlsdemux ! tsdemux ! decodebin ! videoconvert ! autovideosink ---------------------------------------------------------------------------- Setting pipeline to PAUSED ... Pipeline is PREROLLING ... ERROR: from element /GstPipeline:pipeline0/GstHLSDemux:hlsdemux0: Secure connection setup failed.: gstsouphttpsrc.c(1578): gst_soup_http_src_parse_status (): /GstPipeline:pipeline0/GstHLSDemux:hlsdemux0/GstBin:srcbin-src_0/GstSoupHTTPSrc:souphttpsrc1: Unacceptable TLS certificate (6), URL: https://path/to/hls.ts, Redirect to: (NULL) Additional debug info: Error on stream hlsdemux0:src_0 ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... Freeing pipeline ... ---------------------------------------------------------------------------- AND, gst-launch-1.0 souphttpsrc location=https://path/to/hls.m3u8 ! hlsdemux ! tsdemux ! decodebin ! videoconvert ! autovideosink ---------------------------------------------------------------------------- Setting pipeline to PAUSED ... Pipeline is PREROLLING ... ERROR: from element /GstPipeline:pipeline0/GstSoupHTTPSrc:souphttpsrc0: Secure connection setup failed. Additional debug info: gstsouphttpsrc.c(1578): gst_soup_http_src_parse_status (): /GstPipeline:pipeline0/GstSoupHTTPSrc:souphttpsrc0: Unacceptable TLS certificate (6), URL: https://path/to/hls.m3u8, Redirect to: (NULL) ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... Freeing pipeline ... ----------------------------------------------------------------------------
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/385.