Please provide complete information as applicable to your setup.
• Hardware Platform (Jetson / GPU) GPU (GeForce RTX 3060)
• DeepStream Version 6.3
• JetPack Version (valid for Jetson only)
• TensorRT Version 8.5.3.1
• NVIDIA GPU Driver Version (valid for GPU only) 535.104.12
• Issue Type( questions, new requirements, bugs)
• How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing)
• Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)
I’m using deepstream python test 3 to run inference on RTSP streams. I was looking for the functionality where I could reconnect to a stream when it gets disrupted, without restarting the pipeline. In the following link (Stream Disconnects In Deepstream Pipeline), it was suggested to use nvurisrcbin and set the “rtsp-reconnect-interval” property.
So I replaced uridecodebin with nvurisrcbin in the python script and set the reconnect interval as 10. After that if I give 1 RTSP stream as input, disconnect its LAN cable and then reconnect it, the pipeline reconnects to the stream successfully after a certain time and resumes the processing of the stream as shown in following logs:
Resetting source rtsp:stream1
**PERF: {'stream0': 0.0}
Warning: gst-resource-error-quark: Could not read from resource. (9): gstrtspsrc.c(5769): gst_rtspsrc_reconnect (): /GstPipeline:pipeline0/GstBin:source-bin-00/GstDsNvUriSrcBin:uri-decode-bin/GstRTSPSrc:src:
Could not receive any UDP packets for 5.0000 seconds, maybe your firewall is blocking it. Retrying using a tcp connection.
**PERF: {'stream0': 0.0}
**PERF: {'stream0': 0.0}
**PERF: {'stream0': 0.0}
**PERF: {'stream0': 0.0}
**PERF: {'stream0': 0.0}
Decodebin child added: h265parse1
Decodebin child added: capsfilter1
Decodebin child added: nvv4l2decoder1
**PERF: {'stream0': 24.2}
**PERF: {'stream0': 25.0}
**PERF: {'stream0': 25.0}
However, if I give 2 streams as input and remove the LAN cable for stream 1, then processing for not only stream 1 but also stream 2 stops. And when I reconnect the LAN cable for stream 1, the pipeline is not able to reconnect to either of the streams as shown in following logs:
**PERF: {'stream0': 0.0, 'stream1': 0.2}
Resetting source rtsp://stream1
Warning: gst-stream-error-quark: No data from source rtsp://stream1 since last 10 sec. Trying reconnection (1): gstdsnvurisrcbin.cpp(1266): watch_source_status (): /GstPipeline:pipeline0/GstBin:source-bin-00/GstDsNvUriSrcBin:uri-decode-bin
**PERF: {'stream0': 0.0, 'stream1': 0.4}
Warning: gst-resource-error-quark: Could not read from resource. (9): gstrtspsrc.c(5769): gst_rtspsrc_reconnect (): /GstPipeline:pipeline0/GstBin:source-bin-00/GstDsNvUriSrcBin:uri-decode-bin/GstRTSPSrc:src:
Could not receive any UDP packets for 5.0000 seconds, maybe your firewall is blocking it. Retrying using a tcp connection.
**PERF: {'stream0': 0.0, 'stream1': 0.2}
Decodebin child added: h265parse2
Decodebin child added: capsfilter2
Decodebin child added: nvv4l2decoder2
Resetting source rtsp://stream2
Warning: gst-stream-error-quark: No data from source rtsp://stream2 since last 10 sec. Trying reconnection (1): gstdsnvurisrcbin.cpp(1266): watch_source_status (): /GstPipeline:pipeline0/GstBin:source-bin-01/GstDsNvUriSrcBin:uri-decode-bin
**PERF: {'stream0': 0.18, 'stream1': 0.43}
Resetting source rtsp://stream1
Decodebin child added: h265parse3
Decodebin child added: capsfilter3
Decodebin child added: nvv4l2decoder3
**PERF: {'stream0': 1.2, 'stream1': 1.2}
**PERF: {'stream0': 0.2, 'stream1': 0.0}
**PERF: {'stream0': 0.2, 'stream1': 0.0}
Resetting source rtsp://stream1
Resetting source rtsp://stream2
Warning: gst-stream-error-quark: No data from source rtsp://stream1 since last 10 sec. Trying reconnection (1): gstdsnvurisrcbin.cpp(1266): watch_source_status (): /GstPipeline:pipeline0/GstBin:source-bin-00/GstDsNvUriSrcBin:uri-decode-bin
**PERF: {'stream0': 0.26, 'stream1': 0.0}
**PERF: {'stream0': 0.2, 'stream1': 0.0}
**PERF: {'stream0': 0.2, 'stream1': 0.0}
I’m using the deepstream:6.3-triton-multiarch docker as my environment.
Any help regarding this would be greatly appreciated, thank you.