How to write RGB & Depth Frames Without Losing Synchronization

I’m currently working on a project where I capture both depth frames and RGB frames using AVCaptureDataOutputSynchronizer. Depth frames are stored as raw binary data and RGB frames are saved with AVAssetWriter.

The issue I’m facing is that AVAssetWriter enforces a fixed framerate, meaning it adds or discards frames to maintain that rate (as I understand it). This causes a desynchronization between the depth and RGB frames, which is a problem because I need each depth frame to be exactly matched with the corresponding RGB frame as they were captured.

How can I ensure that the RGB frames are saved without AVAssetWriter modifying the frame count?

How to write RGB & Depth Frames Without Losing Synchronization
 
 
Q