3

使用 AVCaptureSession 我想通过 AVCaptureVideoDataOutput 捕获视频帧以进行分析,并根据结果决定立即通过 AVCaptureStillImageOutput 自动拍摄静止图像。所以基本上,两个捕获输出都被添加到 AVCaptureSession 实例中,使用预设的 AVCaptureSessionPresetPhoto 以获得最佳分辨率(记录的照片,用于视频 852x640 - 文档说它不受支持但仍然有效)。使用 AVCaptureSessionPresetPhoto 的第二个原因是因为“视野”比其他高质量预设更扩展,允许将对象保持在更靠近相机的位置以轻松稳定保持)。

在 iOS 5.1 发布之前,这一切都运行良好,这在拍摄静止图像时导致质量显着下降。静止图像的分辨率已降至 640x480。我尝试使用按钮手动拍摄静止图像,没有将视频数据输出添加到 AVCaptureSession,它再次提供了高质量的图像(如预期的那样)。

我非常感谢为这个问题提供解决方案提示!

谢谢

PS:捕获会话和输出的设置是根据 AVCam 等其他示例应用程序完成的。所以我不怀疑配置设置有问题。

4

1 回答 1

1

已经解决了,出现问题是因为视频帧率设置为固定值,显然太高而无法按预期处理。iOS 5.1 似乎包含了一个节流阀。一旦删除了负责 AVCaptureConnection 的 videoMinFrameDuration 和 videoMaxFrameDuration 的值,问题就解决了。

于 2012-07-16T09:28:24.477 回答