4K 60 FPS with Multi-Camera DeepStream Pipeline Bottleneck

• 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.

  1. Please make sure your board has been set to max power mode as described in Performance — DeepStream documentation
    And the clock should be maxout. VPI - Vision Programming Interface: Performance Benchmark

Your camera is 4k@60fps, Please follow DeepStream SDK FAQ - Intelligent Video Analytics / DeepStream SDK - NVIDIA Developer Forums to set the properties of “nvstreammux”.

**There is no update from you for a period, assuming this is not an issue anymore. Hence we are closing this topic. If need further support, please open a new one. Thanks**

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.