iOS - 视频采集详解

本文详细介绍了在iOS中使用AVFoundation框架进行视频采集的过程,包括设置分辨率、添加输入输出对象、配置预览图层以及利用代理方法处理数据。通过示例代码展示了如何创建和管理AVCaptureSession,实现从相机捕获视频并进行实时预览。同时,文章还提及了处理视频方向问题的技巧。
摘要由CSDN通过智能技术生成

苹果官方文档 - AVFoundation

为了管理从相机或者麦克风等这样的设备捕获到的信息,我们需要输入对象(input)和输出对象(output),并且使用一个会话(AVCaptureSession)来管理 input 和 output 之前的数据流:

类名 简介
AVCaptureDevice 输入设备,例如 摄像头 麦克风
AVCaptureInput 输入端口 [使用其子类]
AVCaptureOutput 设备输出 [使用其子类],输出视频文件或者静态图像
AVCaptureSession 管理输入到输出的数据流
AVCaptureVideoPreviewLayer 展示采集 预览View

如图,通过单个 session,也可以管理多个 input 和 output 对象之间的数据流,从而得到视频、静态图像和预览视图
多个输入输出设备

如图,input 可以有一个或多个输入端口,output 也可以有一个或多个数据来源(如:一个 AVCaptureMovieFileOutput 对象可以接收视频数据和音频数据)

当添加 input 和 output 到 session 中时,session 会自动建立起一个连接(AVCaptureConnection)。我们可以使用这个 connection 来设置从 input 或者 从 output 得到的数据的有效性,也可以用来监控在音频信道中功率的平均值和峰值。

AVCaptureConnection

使用 Session 来管理数据流

创建一个 session 用来管理捕获到的数据,需要先将 inputs 和 outputs 添加到 session 中,当 session 执行 [startRunning] 方法后就会开始将数据流发送至 session,通过执行[stopRunning] 方法来结束数据流的发送。

AVCaptureSession *captureSession = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值