Я полагаю, что вы можете просто установить настройки видео на ноль, и AVFoundation будет использовать наиболее эффективный формат. Например, вместо того, чтобы делать
NSDictionary *videoSettings = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange] forKey:(id)kCVPixelBufferPixelFormatTypeKey];
videoOutput.videoSettings = videoSettings;
Сделайте это вместо
videoOutput.videoSettings = nil;
Вы также можете попробовать вообще не устанавливать его. Я знаю, что в прошлом я просто устанавливал бы это на ноль, если бы мне не нужно было захватывать изображения в определенном формате.
редактировать
Чтобы получить формат, который AVFoundation выбрал для использования.
CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(source);
CGColorSpaceRef cref = CVImageBufferGetColorSpace(imageBuffer);