iOS 基本直播流程

2019/01/12 FFmpeg

iOS 基本直播流程

直播基本流程介绍

如图所示:

  1. 音视频的采集
    • PC端:屏幕摄像头(摄像头驱动适配)
    • iOS端:摄像头采集(屏幕采集)
    • Android端:屏幕摄像头采集
  2. 视频处理(美颜、滤镜、水印、模糊等)
    • PC端:美颜镜头、一些美颜软件
    • iOS端:图像处理库是GPUImage
    • Android端:Google开源的grafika
  3. 视频压缩编码,音频压缩编码

    不经编码的视频非常庞大,存储不方便,网络传输也不方便。编码通过压缩音视频数据来减少数据体积,方便音视频数据的推流,拉流和存储,能大大提高存储传输效率。音视频必须经过压缩编码才能进行存储和传输。

  • 硬编码:主要依赖于GPU。iOS主要使用VideoToolBox,AudioToolBox
  • 软编码:主要依赖于CPU。例如FFmpeg软编码
  • 编码标准:视频编码:H.265、H.264、VP8、VP9等。音频编码:AAC、Opus
    1. 推流端到服务端
  • 流传输就涉及到相应的传输协议,最常用的协议是RTMP、RTSP、HLS
    1. 服务器进一步视频转码,分发
    2. 手机端拉流,解码
  • 拉流获取音视频数据后,需要通过解码器解码,渲染才能在播放器上播放
  • 解协议:取出网络传输过程中一些无用信息
  • 解封装:获取到的是音频&视频放在一起的封装文件
  • 音视频解码:音视频都是经过压缩编码的内容,解码后才能进行播放
  • 音视频同步:视频&音频文件需要通过播放
  • 音视频播放:声卡&显卡等对音视频进行播放

Search

    胖虎的博客

    LYoung

    Table of Contents