• Hardware Platform: Jetson Xavier NX Module • DeepStream Version 5.0 • JetPack Version 4.4. [L4T 32.4.3] • TensorRT Version 7.1.3.0
Error while executing Python deepstream-imagedata-multistream with 20 different streams (RTSP ip cameras). The program works well for 20m up to 2h, after that crash with this error:
Warning: gst-resource-error-quark: Could not read from resource. (9): gstrtspsrc.c(5293): gst_rtspsrc_loop_udp (): /GstPipeline:pipeline0/GstBin:source-bin-03/GstURIDecodeBin:uri-decode-bin/GstRTSPSrc:source:
Unhandled return value -7.
Error: gst-resource-error-quark: Could not read from resource. (9): gstrtspsrc.c(5361): gst_rtspsrc_loop_udp (): /GstPipeline:pipeline0/GstBin:source-bin-03/GstURIDecodeBin:uri-decode-bin/GstRTSPSrc:source:
We are experience some micro cuts 1 to 4 sec in the connection with the IP Cameras, this could make the app crash?
How i could debug the RTSP connection?
After 20m with the app running, i connect to a RTSP camera when i see a person pass by the camera, 10m letter i see the same person pass in the Deepstream App.
I think that this is causing the gst-resource-error-quark error
To add more information i using this Camaras:
HikVision
Models: DS-2CD2023G0-I And DS-2CD2125FWD-I
i saw a post with similar problem, but there wasn’t a concrete answer for Python app, we bout use HikVision cameras, but my cuts ar shorts.
This sample is only a client to receive rtsp stream from “IP camera”. And this error means the rtsp client request a response from server, but server did not response. So it is better to debug RTSP server(the ip camera) to know why there is no response.
If you want to dig into the root cause, it is better to analysis the packets between sever and client according to the protocol RFC 2326: Real Time Streaming Protocol (RTSP). This issue has nothing to do with DeepStream and can not be identify by only client side. If you are using rtspsrc plugin to get the stream, one way is to set “debug” property of rtspsrc plugin as TRUE(rtspsrc), then you can analysis the information according to RFC 2326: Real Time Streaming Protocol (RTSP). Any more information, please refer to the information for rtsp protocol with internet.
If you are not using rtspsrc plugin, there are also a lot of open source rtsp analysis tools such as wireshark (Wireshark · Download) which can help to analysis the rtsp requests and response.
Ok, I’m gonna explain my setup to because maybe that is the problem.
I have 20 ip cameras, connected to the internet each with a different dynamic IP provided by the ISP. Every 12 h there is a forced IP change.
In my local network i have a VPN that connects the 20 camaras with a local static IP.
The Xavier is connected to the 20 cameras via the local network (using the VPN)
We suspect that each time our ISP force a ip change in the camaras, the app crash. But this does not make any sense because it should lock as a micro cut of max 5sec to the app.
Edit: After more testing we are sure that the error is when camara ip change. I create a new topic.
If someone have problem that the cameras are not showing the real time, we fixed with this:
FPS = 12
BATCHED_PUSH_TIMEOUT = 1 / FPS * 1000 * 1000