前言
系列文章:
《iOS视频开发(一):视频采集》
《iOS视频开发(二):视频H264硬编码》
《iOS视频开发(三):视频H264硬解码》
《iOS视频开发(四):通俗理解YUV数据》
作为iOS音视频开发之视频开发的第一篇,本文介绍iOS视频采集的相关概念及视频采集的工作原理,后续将对采集后的视频数据进行硬编码、硬解码、播放等流程进行分析讲解。
基本概念
苹果为了管理从摄像头、麦克风等设备捕获到的信息,整了一个叫做AVCaptureSession的东西来对输入和输出数据流进行管理。AVFoundation官方文档
单个AVCaptureSession管理多个输入输出
AVCaptureSession对象是用来管理采集数据和输出数据的,它负责协调从哪里采集数据,输出到哪里。
一个AVCaptureDevice对象代表一个物理采集设备,我们可以通过该对象来设置物理设备的属性。
AVCaptureInput是一个抽象类,AVCaptureSession的输入端必须是AVCaptureInput的实现类。
这里我们用到的是AVCaptureDeviceInput,作为采集设备输入端。
AVCaptureOutput是一个抽象类,AVCaptureSession的输出端必须是AVCaptureOutput的实现类。
这里我们用到的是AVCaptureVideoDataOutput,作为视频数据的输出端。
AVC