• Hardware Platform (Jetson / GPU) : NVIDIA Jetson AGX Orin
• DeepStream Version : 7.1
• JetPack Version (valid for Jetson only) : 6.1
• TensorRT Version : 8.6.2.3
• Issue Type( questions, new requirements, bugs) : question
Hello,
I’m developing a DeepStream pipeline in Python that processes input from 4 cameras. My target configuration is 4K resolution at 60 FPS for each stream. The basic structure of the pipeline is as follows, this is only for development purposes:
Each camera source (nvarguscamerasrc) is followed by a capsfilter, then all sources are connected to a nvstreammux, and finally routed to a fakesink.
Here are nvstreammux settings for this particular pipeline:
nvstreammux.set_property("batch-size", 4)
nvstreammux.set_property("batched-push-timeout", int(1000000 / 60) * 4)
nvstreammux.set_property("live-source", True)
For 4K@60 FPS, I’m using the following sensor settings:
GST_ARGUS: 3856 x 2180 FR = 59.999999 fps Duration = 16666667 ; Analog Gain range min 1.000000, max 3981.070801; Exposure Range min 27000, max 660000000;
This corresponds to sensor_mode=0.
However, the pipeline performance is far from expected. When measuring the actual FPS per stream, I consistently get around 12 FPS, despite the camera providing 60 FPS:
**PERF: {'stream0': 12.25}
**PERF: {'stream0': 11.99}
**PERF: {'stream0': 12.98}
**PERF: {'stream0': 12.98}
**PERF: {'stream0': 12.98}
**PERF: {'stream0': 11.99}
**PERF: {'stream0': 12.98}
**PERF: {'stream0': 12.98}
**PERF: {'stream0': 11.99}
**PERF: {'stream0': 12.99}
If I switch the cameras to 1080p at 60 FPS (sensor_mode=2), the pipeline performs correctly, sustaining close to 60 FPS:
GST_ARGUS: 1920 x 1080 FR = 116.999994 fps Duration = 8547009 ; Analog Gain range min 1.000000, max 3981.070801; Exposure Range min 27000, max 660000000
**PERF: {'stream0': 58.29}
**PERF: {'stream0': 60.96}
**PERF: {'stream0': 59.93}
**PERF: {'stream0': 59.93}
**PERF: {'stream0': 59.93}
**PERF: {'stream0': 59.93}
**PERF: {'stream0': 59.93}
**PERF: {'stream0': 59.93}
**PERF: {'stream0': 59.94}
Question
How can I modify my pipeline or settings to achieve true 4K 60 FPS performance with 4 cameras?
Could the bottleneck be in the nvstreammux, am I missing anything? Or is the limitation due to:
- Camera driver or sensor mode configuration?
- CSI bandwidth or ISP throughput limits?
- GPU performance or memory bandwidth?
- Pipeline element inefficiencies?
Any suggestions or insights on optimizing the DeepStream pipeline to support full 4K 60 FPS on 4 streams would be highly appreciated.
To specify this is run at MAXN mode with running Jetson Clocks.
