全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
视频直播

典型业务流程

更新时间:2017-10-24 10:23:09

本小节将描述一个典型业务流程的实现逻辑,从主播上线到观众加入连麦、连麦结束,最后主播退出直播为止。

整体系统架构如下:

连麦架构图

  1. 连麦SDK和阿里云直播服务部分为阿里云提供。
  2. 蓝色部分(去除连麦SDK和阿里云直播服务)需要业务方自己实现。
  3. AppServer是业务方管理连麦逻辑的模块,可以根据自己的需求控制主副麦能否连麦,并通过调用阿里直播服务的混流接口控制观众是否看到主副麦视频叠加的效果。

连麦需要实现的主要问题

  • 主副麦如何尽量缩短延迟与对方交互

    • 短延迟直播流:在阿里云方案中,主麦与副麦都需要推流到阿里云,阿里云直播服务提供了短延迟地址,主麦、副麦可以通过短延迟地址实时的获取对方的视频流。

    • 视频叠加:主麦拉到副麦的短延迟直播流后,会将副麦与主麦的视频进行叠加,同时播放副麦声音。同理,副麦也会将主麦的视频进行叠加,同时播放声音。上述的两个功能业务方不需要自己实现,阿里云连麦SDK封装了这些功能,业务方只需要调用连麦SDK接口即可。

  • 观众如何看到主副麦的叠加画面

    阿里直播服务提供混流接口,业务方可以调用混流接口将主播与副麦的视频、音频进行叠加,观众将看到这个叠加后的视频。

主播发起直播与观众观看直播

  1. 主播向APP Server发起直播请求。
  2. APP Server同意主播发起直播,并分配主播的推流地址、播放地址以及混流地址。
  3. 主播通过推流地址开始推流。
  4. APP Server收到AliLive推流成功的回调,将主播放入直播列表,表示此时观众可以播放主播的直播流。
  5. 观众A、B、C开始观看直播(即播放混流地址)。
  6. 通知AppServer,用户A、B、C正在观看。

主播发起连麦

  1. 主播向APP Server发出请求,希望与观众A、B连麦。
  2. APP Server向观众A、B反馈主播的请求。
  3. 观众A、B向APP Server发送同意主播连麦请求的信号。
  4. APP Server向观众A、B分配各自的推流地址,并发送主播流的播放地址。
  5. 观众A、B开始连麦(即结束播放混流地址,开始推流、开始播放主播的播放地址)。
  6. APP Server收到AliLive给出的观众A、B推流成功的回调,将A、B的播放地址发送给主播和A、B、C。(注释1:此处观众C并不需要收到A、B的播放地址,是否收到A、B的播放地址对于观众C的播放没有任何影响。之所以收到这个消息主要是通知第三方观众有人加入连麦了。)
  7. 主播开始与A、B进行连麦(即播放A、B的播放地址)。
  8. 副麦A增加与B的连麦(即播放B的播放地址)。
  9. 副麦B增加与A的连麦(即播放A的播放地址)。
  10. APP Server调用AliLive的混流接口,开始混流且A、B加入混流画面。至此,主播与A、B连麦成功。

副麦退出连麦

  1. 副麦B向APP Server发送结束连麦的通知,然后结束连麦(即停止推流、停止播放主播和副麦A的播放地址,开始播放混流地址)。
  2. APP Server调用AliLive的混流接口,B退出混流画面。
  3. APP Server发送副麦B退出直播的消息给主播及A、B、C。
  4. 主播与B停止连麦(即结束播放B的播放地址)。
  5. 副麦A与B停止连麦(即结束播放B的播放地址)。

观众加入连麦

  1. 观众C向APP Server发出申请,要求加入连麦。
  2. APP Server向主播和副麦A转发观众C的申请。
  3. 主播和副麦A向APP Server发送同意连麦的信号。
  4. APP Server向观众C分配推流地址,并发送主播和副麦A的播放地址。
  5. 观众C开始连麦(即结束播放混流地址,开始推流、开始播放主播和副麦A的播放地址)。
  6. APP Server收到AliLive给出的观众C推流成功的回调,将C的播放地址发送给主播和A、B、C。
  7. 主播增加与C的连麦(即播放C的播放地址)。
  8. 副麦A增加与C的连麦(即播放C的播放地址)。
  9. APP Server调用AliLive的混流接口,C加入混流画面。至此,观众C加入连麦成功。

主播终止连麦

  1. 主播向APP Server发送终止连麦通知,并终止连麦(即结束播放副麦A、C的播放地址)。
  2. APP Server向主播和A、B、C发送终止连麦的信号。
  3. 副麦A退出连麦(即结束推流、结束播放主播和副麦C的播放地址,开始播放混流地址)。
  4. 副麦C退出连麦(即结束推流、结束播放主播和副麦A的播放地址,开始播放混流地址)。
  5. APP Server调用AliLive的混流接口,结束混流,A、C退出混流画面。至此,连麦终止。

主播结束直播

  1. 主播向APP Server发送结束直播的通知,并结束推流。
  2. APP Server向观众A、B、C告知直播结束。
  3. 观众A、B、C退出直播(即结束播放混流地址)。

注:无论是直播还是连麦的过程,推流是不可缺少的。主播会推流,副麦会推流。客户端SDK中就提供了能够实现推流功能的接口,这些接口中所谓的推流成功指的是直播流可以成功的发送出去。但这并不表示此时可以从服务端下载这些直播流并观看,只有收到AliLive中推流成功的回调后,才表示可以真正开始播放。

本文导读目录