Hi,
It looks like somehow the source(either one) does not give correct timestamps and triggers the issue. Do you run sink in ‘sync=1’ or ‘sync=0’? If you run in ‘sync=1’, you may try ‘sink=0’.
Either way it should not segfault on a stream timing issue. It should handle it gracefully at least being the reference app for deepstream, otherwise we cannot trust it for continual use in IoT type situations.
I’m also building a custom app based on deepstream-test3 and it never seems to get these rtsp source issue so I think its an issue with deepstream-app.
Both use a decodebin but when I output the pipeline graph I see the deepstream-app version has extra queue’s created inside the decodebin and I have no idea why…
Hi,
We have verified with Sony and HikVision cameras and not hit the issue, hence there may be lack of handling of this error case. For information, please share your brand and model ID of IP cameras.
Please check if you configure live-source and batched-push-timeout accordingly:
[streammux]
...
##Boolean property to inform muxer that sources are live
live-source=0
...
##time out in usec, to wait after the first buffer is available
##to push the batch even if the complete batch is not formed
batched-push-timeout=40000
...
For RTSP sources, live-sourceshould be 1.
For 10fps, batched-push-timeout should be ~120000(usec).
The camera make is Hikvision. I’ll have to get back to you later on the actual model number as I’m not near them right now.
I already have live-source set to 1. I also note that deepstream-test3 does not fail with this issue even though it uses a decodebin to handle the rtsp cameras just the same was that deepstream-app does.
Something interesting that you mentioned is about
batch-push-timeout
. What rule are you using to calculate that it should be set to “~120000(usec)” for 10 fps ? The deepstram documentation does not seem to mention a rule or guideline on this.
The default value is for 30fps. For 30fps, frames are in 33ms interval and set the timeout value a bit higher to be 40ms. For 10fps, you may try 120ms or 110ms.
Whats wrong with setting batch-push-timeout batch-push-timeout to a very high value like 5 seconds or 0 for forever? That would cater for any intermittent rtsp stream issue? Does this create a performance penalty maybe?
Hi,
0 is not recommended since nvstreammux may not collect frames and malfunction. Large value like 5 seconds is also not suggested. Better to be a value matching framerate.