我尝试了很多次,以捕获上述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