項目介紹
本文介紹互動直播項目的構(gòu)成,運(yùn)行流程以及項目如何通過阿里云音視頻終端SDK使用阿里云視頻直播服務(wù)的。
項目構(gòu)成
本項目主要分為如下四部分。
主播端:為主播提供一系列界面,允許主播創(chuàng)建不同類型的直播間,支持主播使用美顏等特效。直播間提供開播推流功能和彈幕互動的功能,橫屏還支持共享屏幕和視頻共享播放。在連麥直播間允許觀眾發(fā)起視頻連麥的申請。
觀眾端:為觀眾提供了界面允許用戶查看直播間列表和當(dāng)前狀態(tài)。允許觀眾進(jìn)入正在直播的直播間觀看直播和發(fā)消息進(jìn)行互動,和進(jìn)入直播結(jié)束的直播間觀看回放。在連麥直播間,觀眾還可以向主播發(fā)起視頻連麥的申請。
AppServer:AppServer基于函數(shù)計算(FC)等方式為AUI Kits低代碼集成工具提供了一套快捷部署、靈活定制的后臺服務(wù)。本項目中作為服務(wù)端負(fù)責(zé)通過阿里云的直播API與阿里云視頻直播服務(wù)進(jìn)行交互,同時負(fù)責(zé)通過API進(jìn)行直播間直播的錄制和支持觀眾觀看直播間回放。
阿里云視頻直播服務(wù):視頻直播服務(wù)(ApsaraVideo Live)是基于內(nèi)容接入與分發(fā)網(wǎng)絡(luò)和大規(guī)模分布式實時轉(zhuǎn)碼技術(shù)打造的音視頻直播平臺,提供便捷接入、高清流暢、低延遲、高并發(fā)的音視頻直播服務(wù)。在本項目中為項目提供視頻直播,連麥直播,視頻錄制和群消息的功能。
項目流程
互動直播項目的大體流程分為如下三部分。
主播創(chuàng)建直播間,觀眾進(jìn)入直播間,可以在直播間中發(fā)送消息進(jìn)行互動。
主播在直播間中發(fā)起直播,觀眾觀看視頻直播。
觀眾發(fā)起視頻連麥,申請成功后成為麥上觀眾并進(jìn)行直播推流,麥下觀眾觀看上麥觀眾和主播的混合直播。
接下來我們通過時序圖,分別對這三部分進(jìn)行詳細(xì)的介紹。
主播創(chuàng)建直播間
這部分主要介紹了主播創(chuàng)建直播間的流程。主播通過主播端向AppServer請求創(chuàng)建直播間,AppServer通過阿里云視頻直播API創(chuàng)建直播群,并獲取直播間直播地址等相關(guān)信息。AppServer在數(shù)據(jù)庫創(chuàng)建教室相關(guān)信息包括直播群和直播間的信息后,創(chuàng)建好的直播間相關(guān)信息返回給主播端。之后主播就可以通過主播端在直播群中發(fā)送消息。觀眾可以通過觀眾端進(jìn)入暫未開播的直播間,并發(fā)送消息彈幕。
本部分AppServer需要用到阿里云視頻直播的API創(chuàng)建直播群組并返回直播間直播地址,所以我們需要在阿里云直播控制臺推流域名配置、播流域名配置和創(chuàng)建直播互動消息應(yīng)用。
主播發(fā)起直播
這部分主要介紹了主播在直播間中發(fā)起直播的流程。主播在直播間中開始直播,主播端通過音視頻終端的SDK和美顏特效SDK將使用美顏特效后的視頻流向推流地址進(jìn)行推流直播。主播端請求AppServer將DB中對應(yīng)直播間的狀態(tài)改為正在直播。觀眾端查看直播間列表,并進(jìn)入正在直播的直播間進(jìn)行拉流觀看。
本部分客戶端需要用到推流地址進(jìn)行推流,所以我們需要在阿里云直播控制臺推流域名配置、播流域名配置和創(chuàng)建直播互動消息應(yīng)用。
本部分主播端用到音視頻終端的直播推流SDK和美顏特效SDK向推流地址進(jìn)行推流,觀眾端用到音視頻終端的播放器SDK觀看教室直播。
主播和觀眾進(jìn)行視頻連麥
這部分主要介紹了觀眾希望與主播進(jìn)行視頻連麥的流程。這一部分流程比較復(fù)雜主要涉及到四種角色:
主播:正在直播間視頻直播。
希望上麥的觀眾:向主播發(fā)起視頻連麥的請求。
其他麥上觀眾:已經(jīng)和主播發(fā)起視頻連麥的觀眾。
麥下觀眾:沒有參與視頻連麥的觀眾。
本部分客戶端用到音視頻終端的播放器SDK觀看直播、需要在阿里云直播控制臺創(chuàng)建直播互動消息應(yīng)用和在創(chuàng)建實時音視頻應(yīng)用中開啟旁路轉(zhuǎn)推。