直播技术整体概述

技术整体概述:

  • 采集:摄像头采集,屏幕采集(视屏来源)
  • 处理:美颜、水印、滤镜效果(瘦脸、美白)
  • 编码:视频压缩编码、音频压缩编码(h.265 / h.264 / VP9)
  • 推流:将编码流推送给服务器
  • 流分发:服务器进一步视频转码将流推送给播放端
  • 解码:将流解码成mp4、mp3、MOV、MPV等
  • 播放:各平台客户端播放视频

音视频采集:
  • PC端:屏幕摄像头(摄像头驱动适配)
  • iOS端:摄像头采集(屏幕采集 ReplayKit)
  • 安卓端:屏幕摄像头采集(适配多、坑多)

前处理:
  • 美颜,瘦脸,水印,磨皮
  • iOS:GPUImage
  • 安卓:grafika
  • PC : 美颜镜头

编码:
  • 不经过编码的视频非常庞大,储存麻烦,网络传输太大

    编码是通过压缩音视频数据来减少数据提及,方便音视频数据的推流,拉流储存,提高传输效率,音视频必须经过压缩才能进行储存传输

  • 编码方式:

    1. 硬编码 :使用非CPU进行编码,如显卡GPU ,专用DSP芯片等
    2. 软编码 : 使用CPU进行编码(手机容易发热)
  • 各个平台处理方式:

    1. iOS端:硬件兼容性较好,可以直接进行硬编码
      2.安卓端:型号不一样,硬编码较难,难以找到统一库兼容各个平台 (推荐使用软编码)
  • 编码标准 :

1.视屏编码:H.264、H.265、VP8、VP9
2.音频编码:AAC、Opus


流分发:
  • 音视频流推到服务器后,为了适配各个平台端各种不同的协议,需要在服务端做一些流处理工作,比如转码成不同格式支持不同协议如RTMP、HLS和FLV来适应各个平台

  • 甚至为了配合一些运营需求,比如一些监管部门的要求,我们在服务端也提供了内容识别,例如鉴黄功能


解码 :
  • 拉流获取音视频数据后,H.264数据能无法直接播放,需要通过解码器解码,渲染才能在播放器上播放
  • 解协议:取出网络协议传输中一些无用信息
  • 解封装:获取到音频&视频封装文件(放在一起)
  • 音视频解码:开始解码压缩内容
  • 音视频同步: 解码的视频 &音频文件需通过同步才能播放

播放:
  • 使用适合的播放软件 进行播放
    1.iOS:AVPlayer 等
    2.安卓:MediaPlayer 等

你可能感兴趣的:(直播技术整体概述)