Behind the Scenes

How MultiCam Recording Actually Works on iPhone

Updated July 28, 2026 · 6 min read

Recording from two iPhone cameras at once sounds like it should be simple — the phone already has multiple lenses on the back. In practice, running two camera streams simultaneously and turning them into two clean, synced video files involves a fair amount of coordination. Here's what's actually happening.

It starts with a single, shared camera session

Apple's camera framework, AVFoundation, normally assumes one app uses one camera at a time. Since iOS 13, a specific session type — AVCaptureMultiCamSession — allows an app to add more than one camera input to a single session, so both can run concurrently instead of one blocking the other.

Each camera gets its own output pipeline

Once two cameras are attached to the session, each one needs its own output: its own video data stream, decoded frame by frame, on its own processing queue. Running both on the same queue would create a bottleneck, so a well-built multi-cam app processes the wide camera's frames and the ultra-wide camera's frames on separate dispatch queues, in parallel.

Recording means writing two files, frame by frame, in sync

Recording video isn't just "save what the camera sees" — each frame has to be encoded and written to a file as it arrives, in real time, fast enough to keep up with the live feed. With two cameras, that means running two independent encoders and two independent output files at once, each fed by its own camera's frames.

The tricky part is keeping them in sync. Every frame carries a precise timestamp, and both files' recording sessions are started from a shared reference time so that frame N in the portrait file and frame N in the landscape file represent the same instant. If you pause and resume mid-recording, the paused duration has to be subtracted from every subsequent timestamp on both files equally — otherwise the two videos drift out of sync the moment you resume.

Single-lens mode does the same job with one camera

When only one physical camera is used, the "second file" is produced by cropping a region out of every frame from the first camera, in real time, before it's handed to its own separate encoder. This has to happen fast enough to keep up with live video — typically 24 to 60 times per second — so efficient cropping (reusing memory buffers instead of allocating new ones for every single frame) matters for keeping the phone from overheating or dropping frames during a long recording.

Photos work differently than video

Capturing a still photo in dual-lens mode usually means triggering a proper photo capture on one camera (for full resolution and quality) while grabbing the most recent live video frame from the other camera to use as its still image — since firing two full photo captures at once isn't how the camera hardware is built to work. That's also why a dual-camera app's "photo mode" plays a single shutter sound even though two images come out of it.

DualFrame handles this synchronization automatically — dual-lens or single-lens, both files stay in sync through pausing, resuming, and stopping.

See DualFrame

Why this only works on certain hardware

Running two encoders at once, in real time, at 4K, is genuinely demanding — which is why Apple limits the MultiCam API to devices with enough dedicated image-processing capability. See our guide on which iPhones support multi-cam recording for the specifics.