1
위의 iOS 7 버전에서 240fps 비디오를 캡처하는 데 여러 번 노력했습니다. 그러나 모든 시도는 실패했습니다. 내 코드는 다음과 같습니다.AVFoundation에서 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 사이의 최소값을 설정해야했습니다.
나를 도와 줄 사람이 있습니까?
감사합니다.