After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 765986 - adaptivedemux: Provide API for being able to set properties on internal HTTP (and other) sources
adaptivedemux: Provide API for being able to set properties on internal HTTP ...
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
1.8.0
Other Windows
: Normal enhancement
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-05-04 13:49 UTC by poto7
Modified: 2018-11-03 13:50 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description poto7 2016-05-04 13:49:16 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.
Comment 1 Tim-Philipp Müller 2016-05-04 13:59:17 UTC
How does it fail?

Please use playbin for HLS, it will be difficult to make HLS work with just decodebin.
Comment 2 Sebastian Dröge (slomo) 2016-05-04 14:01:41 UTC
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?
Comment 3 poto7 2016-05-04 15:20:05 UTC
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.
Comment 4 Sebastian Dröge (slomo) 2016-05-04 21:32:28 UTC
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.
Comment 5 Tim-Philipp Müller 2016-05-04 22:37:02 UTC
I think there's already a bug somewhere for hlsdemux/adaptivedemux to transfer misc state from the httpsrc to the internal souphttpsrc.
Comment 6 Sebastian Dröge (slomo) 2016-05-05 06:59:59 UTC
Bug #751372 seems to be the closest to that, but more limited as it is specific to some properties.
Comment 7 poto7 2016-05-06 00:00:51 UTC
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
Comment 8 poto7 2016-05-06 00:15:07 UTC
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 ...
----------------------------------------------------------------------------
Comment 9 GStreamer system administrator 2018-11-03 13:50:39 UTC
-- 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.