我尝试了很多次,以捕获上述iOS 7版本中的240fps视频。但是所有尝试都失败了。我的代码如下。

CGFloat frameRate = 240.f;

for (AVCaptureDeviceFormat *videoFormat in [self.inputCamera formats]) {
    CMFormatDescriptionRef videoFormatDescriptionRef = videoFormat.formatDescription;
    Float64 maxFrameRate = ((AVFrameRateRange *) [videoFormat.videoSupportedFrameRateRanges objectAtIndex:0]).maxFrameRate;

    if (maxFrameRate >= frameRate && CMFormatDescriptionGetMediaSubType(videoFormatDescriptionRef) == kCVPixelFormatType_420YpCbCr8BiPlanarFullRange) {

        if ([self.inputCamera lockForConfiguration:nil]) {

            self.inputCamera.activeFormat = videoFormat;
            [self.inputCamera setActiveVideoMinFrameDuration:CMTimeMake(600.f/(CGFloat)_frameRate, 600)];
            [self.inputCamera setActiveVideoMaxFrameDuration:CMTimeMake(600.f/(CGFloat)_frameRate, 600)];

            [self.inputCamera unlockForConfiguration];
        }
    }
}

AVCaptureConnection *connection = [videoOutput connectionWithMediaType:AVMediaTypeVideo];
if ( connection ) {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
    if ([connection respondsToSelector:@selector(setVideoMinFrameDuration:)])
        connection.videoMinFrameDuration = CMTimeMake(1, _frameRate);

    if ([connection respondsToSelector:@selector(setVideoMaxFrameDuration:)])
        connection.videoMaxFrameDuration = CMTimeMake(1, _frameRate);
#pragma clang diagnostic pop
}

如果我尝试直接将帧速率设置为240fps,则会崩溃。因此,我必须在iOS支持的值和240 fps之间设置最小值。

有没有人可以帮助我?

问候。

最佳答案

我认为最大速度为60 fps,这取决于您选择的捕获设备。

https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/04_MediaCapture.html#//apple_ref/doc/uid/TP40010188-CH5-SW5

10-07 19:54
查看更多