AVCaptureMultiCamSession Max Connections

I'm building an app that lets you preview multiple external USB cameras simultaneously. I got it to work, but with up to only 3 cameras.

Note that if I only select .external, the 3rd external camera does not stream anything, and the rest of them fail canAddInput.

captureSession.beginConfiguration()

let inputs = AVCaptureDevice.DiscoverySession(
	deviceTypes: [.builtInWideAngleCamera, .external],
	mediaType: .video,
	position: .unspecified
)
	.devices
	.compactMap{ try? AVCaptureDeviceInput(device: $0) }

for input in inputs {
	if !captureSession.canAddInput(input) {
		print("Failed to add camera \(input.device.localizedName)")
		continue
	}
	captureSession.addInput(input)
	
	let layer = AVCaptureVideoPreviewLayer(sessionWithNoConnection: captureSession)
	
	guard let port = input.ports.first else { continue }
	let connection = AVCaptureConnection(inputPort: port, videoPreviewLayer: layer)
	if !captureSession.canAddConnection(connection) { continue }
	captureSession.addConnection(connection)
	cameraLayers.append(layer)
}

captureSession.commitConfiguration()

Tested on iPad Pro with M2

AVCaptureMultiCamSession Max Connections
 
 
Q