GStreamer/DeepStream Times Out with One Camera but Works in VLC/ffplay

I’m running a DeepStream 6.4 application inside the official DeepStream 6.4 Docker container from NGC. My app processes multiple RTSP camera streams. Most of them work fine, except for one specific camera that always times out in GStreamer/DeepStream—yet the same camera opens instantly in VLC or ffplay within the same Docker container.

Below is a simple pipeline I’m testing:

GST_DEBUG=3 gst-launch-1.0 \
    rtspsrc debug=1 protocols=4 location="rtsp://<user>:<password>@<camera-ip>/..." \
    ! decodebin ! nvvideoconvert ! videoconvert ! autovideosink

Here’s the failing log :

Setting pipeline to PAUSED ...
0:00:00.918042613  1156 0x624dba3c0c90 WARN                 kmssink gstkmssink.c:850:gst_kms_sink_start:<autovideosink0-actual-sink-kms> error: Could not open DRM module (NULL)
0:00:00.918060069  1156 0x624dba3c0c90 WARN                 kmssink gstkmssink.c:850:gst_kms_sink_start:<autovideosink0-actual-sink-kms> error: reason: No such file or directory (2)
0:00:00.918104104  1156 0x624dba3c0c90 WARN                basesink gstbasesink.c:5878:gst_base_sink_change_state:<autovideosink0-actual-sink-kms> error: Failed to start
Pipeline is live and does not need PREROLL ...
0:00:00.984404878  1156 0x624dba3c0c90 WARN               structure gststructure.c:2091:priv_gst_structure_append_to_gstring: No value transform to serialize field 'display' of type 'GstEGLDisplay'
Got context from element 'autovideosink0-actual-sink-nveglgles': gst.egl.EGLDisplay=context, display=(GstEGLDisplay)NULL;
Progress: (open) Opening Stream
Pipeline is PREROLLED ...
Prerolled, waiting for progress to finish...
Progress: (connect) Connecting to rtsp://<user>:<password>@<camera-ip>/...
Progress: (open) Retrieving server options
0:00:21.018987408  1156 0x624dba2c2b60 WARN                 rtspsrc gstrtspsrc.c:6523:gst_rtsp_src_receive_response:<rtspsrc0> error: Could not receive message. (Timeout while waiting for server response)
ERROR: from element /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0: Could not read from resource.
Additional debug info:
... gst_rtspsrc.c(6523): gst_rtsp_src_receive_response ():
Could not receive message. (Timeout while waiting for server response)
ERROR: pipeline doesn't want to preroll.
0:00:21.019087035  1156 0x624dba2c2b60 WARN                 rtspsrc gstrtspsrc.c:6621:gst_rtspsrc_try_send:<rtspsrc0> error: Could not receive message. (Timeout while waiting for server response)
ERROR: from element /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0: Could not read from resource.
Additional debug info:
... gst_rtspsrc.c(6621): gst_rtspsrc_try_send ():
Could not receive message. (Timeout while waiting for server response)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
0:00:21.019161250  1156 0x624dba2c2b60 WARN                 rtspsrc gstrtspsrc.c:8216:gst_rtspsrc_open:<rtspsrc0> can't get sdp
0:00:21.019175044  1156 0x624dba2c2b60 WARN                 rtspsrc gstrtspsrc.c:6227:gst_rtspsrc_loop:<rtspsrc0> we are not connected
Freeing pipeline ...

Meanwhile, if I run ffplay "rtsp://<user>:<password>@<camera-ip>/..." in the same container, it connects and plays fine.

What I’ve Tried

  1. Forcing TCP with rtspsrc protocols=4.
  2. Increasing latency/timeout in rtspsrc.
  3. Setting user-agent to mimic ffplay or VLC.
  4. Passing credentials in both the RTSP URL and via user-id/user-pw.
  5. Verified that other RTSP sources work fine using the same pipeline.
  6. Confirmed it’s not a basic network or Docker issue (ffplay inside the container works).

No matter what, the pipeline times out on “Retrieving server options” for this particular camera.

Question

Why can VLC/ffplay receive the stream from this camera without issue, but GStreamer/DeepStream consistently times out?

Any insights or suggestions would be greatly appreciated!

The rtspsrc plugin of the Gstreamer strictly follows RFC 2326 and therefore does not (yet) support RealMedia/Quicktime/Microsoft extensions. It could be that Gstreamer doesn’t support your camera’s rtsp stream.