HTTP stream cannot be played

**• Hardware Platform (GPU) RTX 3060
**• DeepStream Version 7.0
• TensorRT Version
**• NVIDIA GPU Driver Version (valid for GPU only) CUDA12.1
• Issue Type (questions)
Why can I play the http stream using ffplay inside the container, but it fails to execute after setting it up with DeepStream?
Error message:

ERROR from source: Unauthorized
Debug info: gstsouphttpsrc.c(1433): gst_soup_http_src_parse_status (): /GstPipeline:pipeline/GstBin:multi_src_bin/GstBin:src_sub_bin0/GstURIDecodeBin:src_elem/GstSoupHTTPSrc:source:
Unauthorized (401), URL: http://admin:@11.77.17.246/video2.mp4, Redirect to: (NULL)
ERROR from source: Internal data stream error.
Debug info: gstbasesrc.c(3072): gst_base_src_loop (): /GstPipeline:pipeline/GstBin:multi_src_bin/GstBin:src_sub_bin0/GstURIDecodeBin:src_elem/GstSoupHTTPSrc:source:
streaming stopped, reason error (-5)
ERROR from typefindelement0: Stream doesn't contain enough data.
Debug info: gsttypefindelement.c(986): gst_type_find_element_chain_do_typefinding (): /GstPipeline:pipeline/GstBin:multi_src_bin/GstBin:src_sub_bin0/GstURIDecodeBin:src_elem/GstTypeFindElement:typefindelement0:
Can't typefind stream

config:

[source0]
enable=1
#Type - 1=CameraV4L2 2=URI 3=MultiURI 4=RTSP
type=3
uri=http://admin:@11.77.17.246/video2.mp4
#num-sources=1
#drop-frame-interval=60
gpu-id=0
# (0): memtype_device   - Memory type Device
# (1): memtype_pinned   - Memory type Host Pinned
# (2): memtype_unified  - Memory type Unified
cudadec-memtype=0

It looks like your http stream requires a username and password, right?

gst-launch-1.0 uridecodebin uri=http://user:passwd%40ip/video.mp4 ! fakesink

Please escape special characters

When I use ffplay to play the stream, no password is required because it hasn’t been set.
I can play it normally using ffplay http://admin:@11.77.17.246/video2.mp4.

This is a feature of gstreamer. The fact that ffplay can play the file does not mean anything.

So, does the fact that ffplay can play the stream not necessarily mean GStreamer supports the same format?
The stream itself does not have a password set, so does this mean the HTTP stream cannot be played without a password?
This is because I can successfully execute it in DeepStream using its RTSP format: rtsp://admin:@11.77.17.246/video2.mp4.

ffplay base on ffmpeg, and gstreamer are implemented independently

I can play it normally using the following command, I added a username but not a password
tiny-http-server does not support range requests, so it can only support playing .h264

pip install -U tiny-http-server

tiny-http-server --bind 0.0.0.0 --auth admin: --directory /opt/nvidia/deepstream/deepstream/samples/streams/

gst-launch-1.0 uridecodebin uri=http://admin:@127.0.0.1:8000/sample_720p.h264 ! fakesink

souphttpsrc/rtspsrc have different implementations.

This is actually a gstreamer issue. Which version of gstreamer did you install? I use version 1.20.3.

There is no update from you for a period, assuming this is not an issue anymore. Hence we are closing this topic. If need further support, please open a new one. Thanks

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.