Reputation: 540
I'm trying to play the the a remote url using get-launch
gst-launch-1.0 playbin uri=https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm
But I'm getting following error.
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Got context from element 'source': gst.soup.session=context, session=(GstSoupSession)NULL;
ERROR: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstSoupHTTPSrc:source: Secure connection setup failed.
Additional debug info:
../ext/soup/gstsouphttpsrc.c(1632): gst_soup_http_src_parse_status (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstSoupHTTPSrc:source:
TLS/SSL support not available; install glib-networking (6), URL: https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm, Redirect to: (NULL)
ERROR: pipeline doesn't want to preroll.
ERROR: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstSoupHTTPSrc:source: Internal data stream error.
Additional debug info:
../libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstSoupHTTPSrc:source:
streaming stopped, reason error (-5)
ERROR: pipeline doesn't want to preroll.
ERROR: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstTypeFindElement:typefindelement0: Stream doesn't contain enough data.
Additional debug info:
../plugins/elements/gsttypefindelement.c(1014): gst_type_find_element_chain_do_typefinding (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstTypeFindElement:typefindelement0:
Can't typefind stream
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
I also checked the glib-networking (using brew on Mac) and it's already installed. I did some research and found that we may need to set GIO_MODULE_DIR path. So I found the path of glib-networking and set the modules path:
export GIO_MODULE_DIR=/opt/homebrew/Cellar/glib-networking/2.74.0/lib/gio/modules/
Content inside this modules dir:
ls -l /opt/homebrew/Cellar/glib-networking/2.74.0/lib/gio/modules/
total 464
-r--r--r-- abc admin 54848 Oct 2 00:37 libgioenvironmentproxy.so
-r--r--r-- abc admin 179136 Oct 2 00:37 libgiognutls.so
After that if I run the gst-launch-1.0 command then I'm getting following error:
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
dlopen(/opt/homebrew/Cellar/glib-networking/2.74.0/lib/gio/modules/libgiognutls.so, 0x0001): Symbol not found: (_g_byte_array_steal)
Referenced from: '/opt/homebrew/Cellar/glib-networking/2.74.0/lib/gio/modules/libgiognutls.so'
Expected in: '/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libglib-2.0.0.dylib'
Failed to load module: /opt/homebrew/Cellar/glib-networking/2.74.0/lib/gio/modules/libgiognutls.so
dlopen(/opt/homebrew/Cellar/glib-networking/2.74.0/lib/gio/modules/libgioenvironmentproxy.so, 0x0001): Symbol not found: (_g_uri_is_valid)
Referenced from: '/opt/homebrew/Cellar/glib-networking/2.74.0/lib/gio/modules/libgioenvironmentproxy.so'
Expected in: '/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libglib-2.0.0.dylib'
Failed to load module: /opt/homebrew/Cellar/glib-networking/2.74.0/lib/gio/modules/libgioenvironmentproxy.so
Got context from element 'source': gst.soup.session=context, session=(GstSoupSession)NULL;
ERROR: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstSoupHTTPSrc:source: Secure connection setup failed.
Additional debug info:
../ext/soup/gstsouphttpsrc.c(1632): gst_soup_http_src_parse_status (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstSoupHTTPSrc:source:
TLS/SSL support not available; install glib-networking (6), URL: https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm, Redirect to: (NULL)
ERROR: pipeline doesn't want to preroll.
ERROR: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstSoupHTTPSrc:source: Internal data stream error.
Additional debug info:
../libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstSoupHTTPSrc:source:
streaming stopped, reason error (-5)
ERROR: pipeline doesn't want to preroll.
ERROR: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstTypeFindElement:typefindelement0: Stream doesn't contain enough data.
Additional debug info:
../plugins/elements/gsttypefindelement.c(1014): gst_type_find_element_chain_do_typefinding (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstTypeFindElement:typefindelement0:
Can't typefind stream
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
I'm new gstreamer and trying this out for 1st time so not sure about this error.
Thanks for the help!
Upvotes: 0
Views: 975
Reputation: 31
As Florian has commented, you are mixing the GStreamer framework and GStreamer installed via Brew. Also, the framework version of GStreamer had a bug where it doesn't pick up GIO modules automatically.
The workaround as described in the issue is:
$ export GIO_EXTRA_MODULES=/Library/Frameworks/GStreamer.framework/Libraries/gio/modules/
So, you need to use the gio modules that ship with the framework. This has already been fixed upstream, and will be shipped in the 1.20.4 stable release.
You should remove GStreamer installed via Brew when using the framework.
Upvotes: 3