From the Deepstream Developer Guide:
-
nvstreammux properties
– Timeout in microseconds to wait after the first buffer is available to push the batch even if a complete batch is not formed.
–batched-push-timeout= 40000
–40 msec
-
Troubleshooting Solution 3
– In the configuration file’s [streammux] group, set batched-push-timeout to (1/max_fps)
My understanding is that the batch-push-timeout
value should be calculated as indicated by the following examples:
- 12fps source: 1 / 12 * 1000 * 1000 = 83333 (microseconds)
- 25fps source: 1 / 25 * 1000 * 1000 = 40000 (microseconds)
- 30fps source: 1 / 30 * 1000 * 1000 = 33333 (microseconds)
The Deepstream samples uses the following values:
- C/C++ samples uses
40000
(in source files or in configs)/* Muxer batch formation timeout, for e.g. 40 millisec. Should ideally be set * based on the fastest source's framerate. */ #define MUXER_BATCH_TIMEOUT_USEC 40000
-
Python samples uses
4000000
MUXER_BATCH_TIMEOUT_USEC=4000000
I would like confirmation/clarification on:
- Is my calculation examples above are correct?
- Why the Python samples uses a value of
4000000
, which is 4 seconds (see unit conversion) - Is
40000
a realistic real world value for a 25fps RTSP source?
Regards,
• Hardware Platform (Jetson / GPU) Jetson Nano
• DeepStream Version v5.0 GA
• JetPack Version (valid for Jetson only) Jetpack 4.4
• TensorRT Version v7.1.3.0