使用 AVCaptureSession 我想通过 AVCaptureVideoDataOutput 捕获视频帧以进行分析,并根据结果决定立即通过 AVCaptureStillImageOutput 自动拍摄静止图像。所以基本上,两个捕获输出都添加到 AVCaptureSession 实例,使用预设 AVCaptureSessionPresetPhoto 以获得最佳分辨率(记录的照片,视频 852x640 - 文档说它不受支持但无论如何都有效)。使用 AVCaptureSessionPresetPhoto 的第二个原因是因为“视野”比其他高质量预设更广泛,允许将物体放在更靠近相机的位置以便于稳定握住)。
在 iOS 5.1 发布之前一切正常,这导致拍摄静止图像时质量显着下降。静止图像的分辨率已降至 640x480。我尝试使用按钮手动拍摄静止图像,没有将视频数据输出添加到 AVCaptureSession,这再次提供了高质量图像(如预期)。
非常感谢为这个问题提供解决方案提示!!
谢谢
PS:捕获 session 和输出的设置是根据其他示例应用程序(如 AVCam 等)完成的。所以我不怀疑配置设置有问题。
最佳答案
已经解决了,问题出现是因为视频帧率设置为固定值,明显过高,无法按预期处理。 iOS 5.1 似乎加入了 throttle 。删除负责的 AVCaptureConnection 的 videoMinFrameDuration 和 videoMaxFrameDuration 的值后,问题就解决了。
关于iOS 结合视频数据和照片的捕获输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11015049/