Some question about gstreamer in deepstream

• Hardware Platform (Jetson / GPU):Jetson
• DeepStream Version:5.0
• JetPack Version (valid for Jetson only):4.4
• TensorRT Version:7.1

I used this sample app for testing deeptream pipeline, I have some problem :

Q1- If I want to find which streams(RTSPs) are disconnected, Is there a way in gstreamer pipeline to find that?

Q2- I run multi-stream RTSPs, when some of streams are disconnect then the pipeline is work well for other not disconnect streams, but I want to as soon as they connected, the pipeline will continue to work for all streams, without missing former(not disconnected) streamers. I don’t want to stop the pipeline.

In https://github.com/NVIDIA-AI-IOT/deepstream_python_apps/blob/master/apps/deepstream-imagedata-multistream/deepstream_imagedata-multistream.py, every uridecodebin has a unique name “source-bin-%02d”, the index is different for different uridecodebin. And this index is the same with the “source_id” in frame_meta https://docs.nvidia.com/metropolis/deepstream/python-api/PYTHON_API/NvDsMeta/NvDsFrameMeta.html

@Fiona.Chenm, Thanks so much.
Yes it’s possible to achieve source_id in the frame_meta when the streams is connected, but when the streams is disconnected then the frame_meta is not exist for that streams.

One big problem that I encountered is that when some of streams are disconnected and the pipeline continues to operate for the rest of the streams, but when ones of disconnected streams is connect I want to keep on work for this streams and others. How I can do this? Is it possible to change stats of that uridecodebin element to playing ?

It is possible to change the element state when the pipeline state is not changed.

Please refer to https://github.com/NVIDIA-AI-IOT/deepstream_reference_apps/tree/master/runtime_source_add_delete
We also has the link in our document.
https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_ref_app_github.html#deepstream-features-sample

@Fiona.Chen, Thanks,
It is possible to get message or other things when the disconnected stream is connected?
When the connected stream is disconnected , I can get message from bus in pipeline, but I want to have when that disconnected is connect now, I also get message. Is it possible?

What do you mean with “disconnected” and “connected”? To link and unlink the pad?

@Fiona.Chen,
Connected means that the camera is running and the disconnected means that the camera is crashed and halted.

From RTSP point of view, the rtsp server(camera) crash will not inform rtsp client(deepstream app). One stream in deepstream is one rtsp client. The rtsp client does not know what happens with RTSP server.