Запись 240fps не работает с помощью AVFoundation - PullRequest
0 голосов
/ 08 октября 2019

Я работаю над приложением для iOS, и в моем приложении есть функция замедленной записи. Я пытался записывать со скоростью 240 кадров в секунду, но fps записанного видео не 240. fps видео, записанного с помощью iPhone 6, составляет 163. fps видео, записанного с помощью iPhone 7, составляет 213.

Я не уверен, почему fps видео записывается с помощью iPhone6 ниже, чем iphone7. iPhone 6 имеет возможность записи 240 кадров в секунду.

Вот фрагмент кода, который я использовал для установки minFrameDuration и maxFrameDuration устройства захвата.

 AVCaptureDevice *videoDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

for (AVCaptureDeviceFormat *format in [videoDevice formats]) {

    AVFrameRateRange *range = [format.videoSupportedFrameRateRanges firstObject];
    NSLog(@"max fps = %f", range.maxFrameRate);
    if (range.maxFrameRate == 240) {
        NSError *err;
        if ([videoDevice lockForConfiguration:&err]) {
            if (err == NULL) {
                videoDevice.activeFormat = format;
                NSLog(@"min frame duration = %f, max frame duration = %f", CMTimeGetSeconds(range.minFrameDuration), CMTimeGetSeconds(range.maxFrameDuration));
                videoDevice.activeVideoMinFrameDuration = range.minFrameDuration;
                videoDevice.activeVideoMaxFrameDuration = range.minFrameDuration;//range.maxFrameDuration;
                [videoDevice unlockForConfiguration];
            } else {
                NSLog(@"error = %@", err.localizedDescription);
            }
        }
    }
}

Что-то пошло не так в моем коде? Я пытался погуглить, чтобы решить эту проблему, но не нашел рабочего ответа.

Буду признателен, если кто-нибудь мне поможет.

Спасибо

...