Skip to content

Latest commit

 

History

History
18 lines (15 loc) · 1.43 KB

流程简介.md

File metadata and controls

18 lines (15 loc) · 1.43 KB

流程简介

直播区别点播

  • 点播,就是一点点地下载文件,下完的作为缓冲,典型的是爱奇艺,其视频文件存在服务器
  • 直播,与点播不同的是,服务器并没有一个完整的视频文件,简单理解就是推流端A采集视频流(不是文件),推送至服务器B,然后播流的C向B发起一个连接的请求,C和B建立连接后,B将从A获取到的视频流分发到C。(简单粗暴的理解)

直播协议RTMP

  • 该协议是目前使用率最高的,延迟相比Apple的HLS协议的10秒低得多(网络好的时候2-3秒),该协议是Adobe的自己协议,2009年还是2012年部分开源了,目前遇到的能用的rtmp库有三个,第一个是librtmp,第二个是videoCore,第三个是If.swift的。别的直播协议有很多,例如RTP+RTCP、RTSP,HLS,HLS+,HTTP—FLV,UDP协议实现的私有的(延迟超级低,启动也快),btw:rtmp是基于TCP的,但直播的显然不需要可靠传输,鉴于技术能力,我们就用目前最广泛的RTMP

分解步骤

  • 1.视频数据流采集 √
  • 2.音频数据流采集 √
  • 3.视频数据流硬编码(H.264流) √
  • 4.音频数据流硬编码(H.264流)
  • 5.音视频同步
  • 6.音视频流封装成AMF消息格式
  • 7.通过RTMP协议发送AMF消息至服务器
  • 8.美颜、滤镜之类的视频特效处理(用GPUImage2(作者用swift重写了该库))