使用AVCaptureSession我想通过AVCaptureVideoDataOutput捕获视频帧以进行分析,并根据结果决定立即通过AVCaptureStillImageOutput自动拍摄静止图像。所以基本上,两个捕获输出都被添加到AVCaptureSession实例,使用预设的AVCaptureSessionPresetPhoto获得最佳分辨率(照片记录为视频852x640 - 文档说它不支持但无论如何都有效)。使用AVCaptureSessionPresetPhoto的第二个原因是因为“视野”比其他高质量预设更加扩展,允许将物体靠近相机以便于稳定握持。)
这一切都运行良好,直到iOS 5.1发布,这在拍摄静止图像时造成了显着的质量节制。静止图像的分辨率降至640x480。我尝试使用按钮手动拍摄静止图像,而不是将视频数据输出添加到AVCaptureSession,这样可以再次提供高质量的图像(如预期的那样)。
我非常感谢为此问题提供解决方案提示!!
由于
PS:捕获会话和输出的设置是根据AVCam等其他示例应用程序完成的。所以我不怀疑配置设置有问题。
答案 0 :(得分:1)
它已经解决了,问题出现了,因为视频帧速率设置为固定值,显然太高而无法按预期处理。 iOS 5.1似乎有一个节流阀。一旦删除了负责的AVCaptureConnection的videoMinFrameDuration和videoMaxFrameDuration的值,问题就解决了。