本文介绍互动直播项目的构成,运行流程以及项目如何通过阿里云音视频终端SDK使用阿里云视频直播服务的。
项目构成
本项目主要分为如下四部分。
主播端:为主播提供一系列界面,允许主播创建不同类型的直播间,支持主播使用美颜等特效。直播间提供开播推流功能和弹幕互动的功能,横屏还支持共享屏幕和视频共享播放。在连麦直播间允许观众发起视频连麦的申请。
观众端:为观众提供了界面允许用户查看直播间列表和当前状态。允许观众进入正在直播的直播间观看直播和发消息进行互动,和进入直播结束的直播间观看回放。在连麦直播间,观众还可以向主播发起视频连麦的申请。
AppServer:AppServer基于函数计算(FC)等方式为AUI Kits低代码集成工具提供了一套快捷部署、灵活定制的后台服务。本项目中作为服务端负责通过阿里云的直播API与阿里云视频直播服务进行交互,同时负责通过API进行直播间直播的录制和支持观众观看直播间回放。
阿里云视频直播服务:视频直播服务(ApsaraVideo Live)是基于内容接入与分发网络和大规模分布式实时转码技术打造的音视频直播平台,提供便捷接入、高清流畅、低延迟、高并发的音视频直播服务。在本项目中为项目提供视频直播,连麦直播,视频录制和群消息的功能。
项目流程
互动直播项目的大体流程分为如下三部分。
主播创建直播间,观众进入直播间,可以在直播间中发送消息进行互动。
主播在直播间中发起直播,观众观看视频直播。
观众发起视频连麦,申请成功后成为麦上观众并进行直播推流,麦下观众观看上麦观众和主播的混合直播。
接下来我们通过时序图,分别对这三部分进行详细的介绍。
主播创建直播间
这部分主要介绍了主播创建直播间的流程。主播通过主播端向AppServer请求创建直播间,AppServer通过阿里云视频直播API创建直播群,并获取直播间直播地址等相关信息。AppServer在数据库创建教室相关信息包括直播群和直播间的信息后,创建好的直播间相关信息返回给主播端。之后主播就可以通过主播端在直播群中发送消息。观众可以通过观众端进入暂未开播的直播间,并发送消息弹幕。
本部分AppServer需要用到阿里云视频直播的API创建直播群组并返回直播间直播地址,所以我们需要在阿里云直播控制台推流域名配置、播流域名配置和创建直播互动消息应用。
主播发起直播
这部分主要介绍了主播在直播间中发起直播的流程。主播在直播间中开始直播,主播端通过音视频终端的SDK和美颜特效SDK将使用美颜特效后的视频流向推流地址进行推流直播。主播端请求AppServer将DB中对应直播间的状态改为正在直播。观众端查看直播间列表,并进入正在直播的直播间进行拉流观看。
本部分客户端需要用到推流地址进行推流,所以我们需要在阿里云直播控制台推流域名配置、播流域名配置和创建直播互动消息应用。
本部分主播端用到音视频终端的直播推流SDK和美颜特效SDK向推流地址进行推流,观众端用到音视频终端的播放器SDK观看教室直播。
主播和观众进行视频连麦
这部分主要介绍了观众希望与主播进行视频连麦的流程。这一部分流程比较复杂主要涉及到四种角色:
主播:正在直播间视频直播。
希望上麦的观众:向主播发起视频连麦的请求。
其他麦上观众:已经和主播发起视频连麦的观众。
麦下观众:没有参与视频连麦的观众。
本部分客户端用到音视频终端的播放器SDK观看直播、需要在阿里云直播控制台创建直播互动消息应用和在创建实时音视频应用中开启旁路转推。