iPhone 5S中的静止图像捕获时间比iPhone 5慢?

时间:2014-02-14 12:31:40

标签: ios iphone camera avfoundation avcapturesession

我正在尝试用8百万像素拍摄静止图像。我描述了摄像机管道进入完成处理程序所花费的时间,平均而言,iPhone 5S需要0.33秒,因为iPhone 5需要不到0.15秒。可以任何机构解释这个。这是我的分析代码。

__block NSDate *TimerAcross = [NSDate date];
    [stillImageOutput captureStillImageAsynchronouslyFromConnection:connection
                                                  completionHandler:^(CMSampleBufferRef imageDataSampleBuffer, NSError *error)
     {
         DLog(@"handler call  timer = %f", [[NSDate date] timeIntervalSinceDate:TimerAcross]);
    }`

当我在方形凸轮(苹果演示代码)中尝试相同的代码时。我看到iPhone 5S的使用时间约为0.6秒,比iPhone 5还要小。 这背后的原因是什么。

我的设置用于捕获YUVSP图像。 `NSMutableDictionary * outputSettings = [NSMutableDictionary dictionaryWithObject:AVVideoCodecJPEG forKey:AVVideoCodecKey];

[outputSettings setValue:@(kCVPixelFormatType_420YpCbCr8BiPlanarFullRange)forKey:(id)kCVPixelBufferPixelFormatTypeKey];

NSMutableDictionary *videoOutputSettings = [NSDictionary dictionaryWithObject:@(kCVPixelFormatType_420YpCbCr8BiPlanarFullRange) forKey:(id)kCVPixelBufferPixelFormatTypeKey];

[stillImageOutput setOutputSettings:outputSettings];
[videoDataOutput setVideoSettings:videoOutputSettings];
videoDataOutput.alwaysDiscardsLateVideoFrames = YES;

if([captureSession canAddOutput:stillImageOutput] && [captureSession canAddOutput:videoDataOutput])
{
    [captureSession addOutput:videoDataOutput];
    [captureSession addOutput:stillImageOutput];
    NSLog(@"added output to captureSession");
    return YES;
}
else
{
    NSLog(@"error in adding still image output");
    return NO;
}

}`

1 个答案:

答案 0 :(得分:2)

请分享或检查您的连接的视频方向设置。

如果设置为某个固定方向,硬件可能需要一些时间才能通过回叫返回。请使用方法[connection setVideoOrientation:]根据您当前的设备方向设置方向,这将是一个更快的回叫。

有关详细信息,请参阅此Link