Hardware requirements for recording from 3 Zed 2i cameras

I want to record time-synced videos from 3 Zed 2i cameras. They are physically close to each other, such that I think a single PC that connects to all of them is the easiest way to achieve that. My questions pertains on what the hardware requirements for this PC would be.

I want to record at 1080p and 30fps.

I found quite a few posts about 2 cameras, but only one on 3 ( Calibrate and record videos with three zed 2i cameras - #7 by felixshing ) which is a bit dated and since the requirements are also software dependent I wanted to ask:

  • I assume an extra PCIe USB3 controller will be necessary. Is this correct?
  • What is the minimum GPU spec?
  • What is the minimum CPU spec?
  • What is the minimum ammount of RAM?
  • Are there any considerations about actually writing to disk that are unusual (e.g. needing a especially fast SSD)?

Note that I do not want to process the videos live. Even live depth computation is not needed. Only a recording of the video streams with all metadata needed such that it can be processed later on with the SDK.

Hi @dkilic, welcome to the StereoLabs community forum, and thank you for the detailed question.

Correct. A ZED 2i in HD1080@30 generates around 250 MB/s of raw image data, while a single USB 3.0 controller saturates at about 620 MB/s, so three cameras (~750 MB/s) cannot share the same controller: you would get green/purple frames, tearing, or disconnections. Distribute the cameras across at least two independent controllers, three is the safest choice, using a multi-channel PCIe USB 3.x expansion card where each port has its own controller and is not behind an internal hub. Use the cables supplied with the cameras and avoid hubs or passive extensions. Details here: Setting Up Multiple 3D Cameras.

The ZED SDK requires an NVIDIA GPU with Compute Capability >= 7.5, so Turing micro-architecture or newer; see Recommended Specifications. For recording only, an entry-level RTX board is sufficient, since the heavy work is done by NVENC. The point to verify is the number of concurrent NVENC sessions supported by the model you choose: each camera recording in H.264/H.265 opens one encoding session, so you need at least three. The NVENC support matrix is linked in the Video Recording page.

The documented minimum is a modern quad core, but with three cameras I suggest 6 to 8 physical cores. With depth disabled (DEPTH_MODE::NONE) and encoding offloaded to NVENC, the CPU only handles the three USB capture threads and the SVO2 writers, so it is normally not the bottleneck.

16 GB is the recommended value in the specifications; 32 GB gives you comfortable margin with three cameras.

With H.264 or H.265 compression the write throughput is only a few MB/s per camera at the default bitrate, so any SATA SSD is fine. The lossless modes are a different story: they write in the order of tens of MB/s per camera, so an NVMe SSD is required in that case. Record one SVO2 file per camera; SVO2 already embeds timestamps, IMU and the other sensor data, so everything you need for offline processing with the SDK is preserved.

One important remark about your synchronization requirement: USB cameras such as the ZED 2i do not expose a hardware trigger, so alignment between the three streams is done in post-processing using the SDK image timestamps. This is usually good enough, but the residual offset is bounded by the frame period. If you need true frame-level synchronization, the ZED X connected to a ZED Link Capture Card on a Jetson Orin provides hardware synchronization within 100 microseconds, and the GMSL2 links remove the USB bandwidth constraint entirely.

Finally, if you prefer not to write a recording application, ZED Studio records multiple cameras to SVO2 simultaneously and lets you set resolution, FPS, compression mode and bitrate from the GUI.

Best,
Walter

Thanks for the detailed answer!