是否可以在AVCaptureVideoDataOutput中设置AVCaptureSessionPresetPhoto?

时间:2013-01-03 14:55:44

标签: ios image camera avfoundation

我想保存视频流中的图像,我已将会话预设设置为AVCaptureSessionPresetPhoto,但我的设备分辨率非常低。我正在测试3GS,这个预设给我带来512x384缓冲区。我在文档中看到照片预设无法应用于视频输出。

  

视频输出

不支持此功能

这是否也适用于来自相机缓冲区的原始数据?
谢谢, 安德烈

2 个答案:

答案 0 :(得分:2)

如果您想要对摄像机输入进行视频预览,但仍然从中捕获静态照片,则可以将AVCaptureStillImageOutput和AVCaptureVideoDataOutput添加到捕获会话中。如上所述,视频预览将为您提供奇怪尺寸的较小帧,但您仍然可以通过触发AVCaptureStillImageOutput上的-captureStillImageAsynchronouslyFromConnection:completionHandler:来检索完整照片。

请注意,在iOS 4.3中悄然添加了对视频预览的支持,但仍能够拍摄照片,因此运行较旧操作系统版本的设备将无法执行此操作。

答案 1 :(得分:1)

对于iPhone 7 plus,这是我目前的情况,如果您将预设设置为AVCaptureSessionPresetPhoto,并使用视频流作为输出,则分辨率会自动降级为1440 * 1080.但这并非如此影响图像输出,前置摄像头为4032 * 3024,后置摄像头为3088 * 2320。

请注意,这有时也不错,因为这是3/4宽高比下最高的视频分辨率