Deepstream-server Issue with RTSP (nvurisrcbin or nvmultiurisrcbin issue)

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson / GPU)
• DeepStream Version 6.4
• JetPack Version (valid for Jetson only)
• TensorRT Version
• NVIDIA GPU Driver Version (valid for GPU only)
• 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)

Problem:

  • Deepstream-server fails to read RTSP stream after is launched without a video file.
  • It keeps trying to reconnect to the RTSP feed but doesn’t succeed.
  • Providing a video file after launching the server enables both the RTSP and video processing, displaying FPS for both sources.

To reproduce the issue

gst-launch-1.0 nvmultiurisrcbin \
port=9000 ip-address=localhost \
batched-push-timeout=33333 max-batch-size=10 \
drop-pipeline-eos=1  rtsp-reconnect-interval=1  live-source=1 width=1920 height=1080 \
! nvmultistreamtiler ! nveglglessink

This will run the app without any video, it will wait for rtsp or video request. First post RTSP, it will keep try to reconnect , until you post a video file , then it will appear the window for both the RTSP and the file.

To conclude, the deepstream-server can’t read the rtsp when it is running unless you post a video file or you post the rtsp during initialization. Otherwise, it won’t read the RTSP

Notice:
This issue is only occurred in Deepstream 6.4

You mean it was good on the previous version?

In 6.3 , yes. Please try to reproduce it in 6.4 then check it in 6.3

Could you attach the steps you verified that on DeepStream 6.3 in detail? I have tried that with DeepStream 6.3, but it will report Error 404: Not Found when sending the source to the server.

What source are you sending? And what is the route that you are using to add source?

I think you are applying the wrong route for adding in DS 6.3, please use

http://localhost:9000/stream/add

in DS6.4 the route is

http://localhost:9000/api/v1/stream/add

1- run

gst-launch-1.0 nvmultiurisrcbin \
port=9000 ip-address=localhost \
batched-push-timeout=33333 max-batch-size=10 \
drop-pipeline-eos=1  rtsp-reconnect-interval=1  live-source=1 width=1920 height=1080 \
! nvmultistreamtiler ! nveglglessink

2- in DS 6.3 to add camera

  curl -XPOST 'http://localhost:9000/stream/add' -d '{
    "key": "sensor",
    "value": {
        "camera_id": "uniqueSensorID1",
        "camera_name": "front_door",
        "camera_url": "file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4",
        "change": "camera_add",
        "metadata": {
            "resolution": "1920 x1080",
            "codec": "h264",
            "framerate": 30
        }
    },
    "headers": {
        "source": "vst",
        "created_at": "2021-06-01T14:34:13.417Z"
    }
  }'

Please use rtsp in

camera_url

instead of file://

for more information read the README file in

/opt/nvidia/deepstream/deepstream-6.3/sources/apps/sample_apps/deepstream-server/README

Thanks. We’ll analyze that as soon as possible.

I upgraded the GStreamer version in DS6.3 from 1.16 to 1.20 (the same version used in DS 6.4). The problem occurred after the upgrade. I believe the issue is related to GStreamer 1.20

OK. Thanks for that information. We’ll analyze that further.
Could you just try to set the async=false to the sink plugin currently?