2015-01-13 6 views
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 사이의 최소값을 설정해야했습니다.

나를 도와 줄 사람이 있습니까?

감사합니다.

답변

관련 문제