iOS 基本直播流程
直播基本流程介绍
如图所示:
- 音视频的采集
- PC端:屏幕摄像头(摄像头驱动适配)
- iOS端:摄像头采集(屏幕采集)
- Android端:屏幕摄像头采集
- 视频处理(美颜、滤镜、水印、模糊等)
- PC端:美颜镜头、一些美颜软件
- iOS端:图像处理库是GPUImage
- Android端:Google开源的grafika
- 视频压缩编码,音频压缩编码
不经编码的视频非常庞大,存储不方便,网络传输也不方便。编码通过压缩音视频数据来减少数据体积,方便音视频数据的推流,拉流和存储,能大大提高存储传输效率。音视频必须经过压缩编码才能进行存储和传输。
- 硬编码:主要依赖于GPU。iOS主要使用VideoToolBox,AudioToolBox
- 软编码:主要依赖于CPU。例如FFmpeg软编码
- 编码标准:视频编码:H.265、H.264、VP8、VP9等。音频编码:AAC、Opus
- 推流端到服务端
- 流传输就涉及到相应的传输协议,最常用的协议是RTMP、RTSP、HLS
- 服务器进一步视频转码,分发
- 手机端拉流,解码
- 拉流获取音视频数据后,需要通过解码器解码,渲染才能在播放器上播放
- 解协议:取出网络传输过程中一些无用信息
- 解封装:获取到的是音频&视频放在一起的封装文件
- 音视频解码:音视频都是经过压缩编码的内容,解码后才能进行播放
- 音视频同步:视频&音频文件需要通过播放
- 音视频播放:声卡&显卡等对音视频进行播放