iOS 结合视频数据和照片的捕获输出

标签 ios video avfoundation photo avcapturesession

使用 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/

相关文章:

ios - 从键盘通知中获取 UITextField

html - 有没有一种方法可以迫使运行VAST标签的播放器即使在用户互动时也保持沉默?

ios - 用于附加 .MOV 的 UIImagePickerController 流类型?

objective-c - 使用 AVFoundation 的视频的第一帧

ios - AVAssetExportSession 导出不确定性失败,错误为 : "Operation Stopped, NSLocalizedFailureReason=The video could not be composed."

ios - 使用 detox 测试 e2e 无法启动 iPhone 模拟器,而是启动 Apple TV

c++ - Mac 应用程序的文件保存位置

ios - 如何在 ios 中使用 Web 服务获取声音数据?

ios - SpriteKit 在使用 [Flurry startSession :FlurryAPPKey]; 进入背景时崩溃

video - 获取 MOV 视频的元数据