iOS端直播-音视频采集技术分享
1、iOS直播技术的流程 直播技术的流程大致可以分为几个步骤:数据采集、图像处理(实时滤镜)、视频编码、封包、上传、云端(转码、录制、分发)、直播播放器。 数据采集:通过摄像头和麦克风获得实时的音视频数据; 图像处理:将数据采集的输入流进行实时滤镜,得到我们美化之后的视频帧; 视频编码:编码分为软编码和硬编码。现在一般的编码方式都是H.264,比较新的H.265据说压缩率比较高,但算法也相当要复杂一些,使用还不够广泛。软编码是利用CPU进行编码,硬编码就是使用GPU进行编码,软编码支持现在所有的系统版本,由于苹果在iOS8才开放硬编码的API,故硬编码只支持iOS8以上的系统; 封包:现在直播推流中,一般采用的格式是FLV; 上传:常用的协议是利用RTMP协议进行推流; 云端:进行流的转码、分发和录制; 直播播放器:负责拉流、解码、播放。 2、获取系统的授权 直播的第一步就是采集数据,包含视频和音频数据,由于iOS权限的要求,需要先获取访问摄像头和麦克风的权限: 请求获取访问摄像头权限 __weak typeof ( self ) _self = self ; AVAuthorizationStatus status = [ AVCaptureDevice authorizationStatusForMediaType : AVMediaTypeVideo ] ; switch