1. 程式人生 > >騰訊雲互動直播SDK整合綜述

騰訊雲互動直播SDK整合綜述

SDK構成

互動直播SDK由兩部分構成,IMSDK和AVSDK

IMSDK+AVSDK互動圖

其中IMSDK為雲通訊SDK,為AVSDK提供賬號登入、信令通道、IM彈幕訊息、日誌模組、日誌上報等功能

AVSDK提供攝像頭採集、編碼、解碼、美顏等一系列功能(下圖為AVSDK整體框架)

AVSDK構成

登入互動邏輯

騰訊雲互動直播提供兩種賬號對接方式

  • 託管模式

    由騰訊提供賬號的註冊、密碼儲存及校驗

  • 獨立模式

    由第三方業務自己儲存賬號體系,使用互動直播時,騰訊對第三方賬號體系進行一定程度校驗,是目前應用最廣泛的一種驗證方式。

本文著重講解獨立模式使用方法

1.App登入業務伺服器,做使用者身份業務方鑑權

2.業務伺服器驗證成功後,根據使用者身份,使用私鑰加密使用者身份資訊後生成UserSig

返回給客戶端

3.將UserSig傳給IMSDK的login介面,完成騰訊雲伺服器登入

圖示:派發UserSig流程

建立房間互動邏輯

互動直播採用房間的概念進行音視訊流交換,即觀看者與主播必須同一個房間內才能完成通訊。但互動直播不進行房間管理操作,相關的房間號分配、房間成員列表、房間的觀眾主播進出都可由業務來管理(可藉助IMSDK實現該功能,詳情請見房間狀態通知)

建立房間互動流程如下:

1.主播向業務伺服器請求建立房間

2.業務伺服器分配房間號

3.主播使用分配的房間號呼叫AVSDK建立房間介面完成建立

4.通知業務伺服器建立房間完成

圖示:建立房間互動流程

觀眾進入房間互動邏輯

在主播完成房間建立後,業務直播平臺已經有當前正在直播的房間列表。觀眾在登陸後可以看到該房間列表點選後進入房間,可發IM訊息或者業務邏輯通知給其他已經在看的觀眾和主播。詳細流程圖如下:

注意:AVSDK不提供觀眾進入直播間通知,且不維護房間成員數及列表,可使用IMSDK實現或業務自行實現(見示意圖虛線部分)

圖示:觀眾進入房間互動

觀眾主播IM訊息互動邏輯

觀眾正在欣賞主播表演同時,可以和主播進行IM互動,進行聊天、送花和送禮物等其它操作

當觀眾需要進行送花、送禮物等計費相關操作時,有兩種方案可供選擇

  • 觀眾送花,由互動直播雲回撥業務後臺,進行扣費
  • 觀眾送花,由App上行請求至直播平臺,完成扣費操作後,直播平臺通過IMSDK REST API介面傳送該訊息

當直播間內成員較多時,較大訊息量可能會引起主播效能問題,業務側需要優化渲染策略,同時互動直播雲(IMSDK)可控制訊息頻率

圖示:IM及其他訊息互動

觀眾退出房間互動邏輯

觀眾退出房間時,也需要通知給主播和其它的觀眾,相關流程可參考觀眾進入房間互動邏輯

主播退出房間互動邏輯

當主播退出房間時,需做以下幾件事情

  • 通知業務直播平臺,直播間銷燬
  • 通知其它的觀眾,主播已退出
  • 顯示直播結束頁(展示直播時長、直播熱度等)

流程圖如下:

圖示:主播退出房間互動

視訊連麥

連麥功能是騰訊雲互動直播SDK在直播場景下推出的特色功能,可供主播和某一(多)觀眾進行視訊連線,相互交流,其它的觀眾可看到主播和被邀請的觀眾的音視訊畫面(映客、聚美優品等App均實現了該功能)

可下載隨心播進行體驗,並可參考隨心播封裝程式碼(Android下載iOS下載)

上麥的實現流程如下:
邀請上麥
注意

  • 邀請A上麥需要發點多點的訊息(可使用雲通訊IMSDK的單聊訊息,用CustomElem實現
  • 一定要在A完成上麥(開麥克風、攝像頭,上傳本地畫面)完成後,再發送上麥廣播通知
  • 上麥廣播通知可使用雲通訊的群訊息(CustomElem)實現

下麥的實現流程如下:
A下麥
注意

  • 主播和觀眾A下麥都需要考慮(程式碼中要做好保護)
  • 下麥的廣播通知和下麥者關閉本地視訊上傳可同時進行(但建議先發出下麥通知,再關閉本地畫面)

推流RTMP/HLS(H5或網頁端觀看)

互動直播SDK可直接由後臺將私有協議轉碼為RTMP和HLS,業務可以將RTMP和HLS進行應用間分享,如分享到微信、QQ、朋友圈、QZone和其它應用內

建議使用
推流的TIMAvManager.StreamParam引數可直接設定進行錄製,不需要再呼叫錄製API(推流結束錄製也結束,生命週期一致)

注意

  • 互動直播推流使用了直播的cdn,需要業務申請直播許可權(重要)
  • 直播有頻道數限制,請業務提前申請足夠的頻道數
  • 因各種客戶端異常導致沒有正常銷燬頻道,開發者需從騰訊雲控制檯上手動關閉頻道,否則頻道會一直存在(佔用總頻道數)

錄製主播視訊(回放)

互動直播提供了音視訊錄製API,可由互動直播後臺將主播的音視訊錄製下來,並且儲存到點播伺服器上,待轉碼完成以後,就可以實現回放、分發等其他的功能

注意

  • 需要開通點播服務
  • 錄製僅限於主播(第一個進入房間並且有音視訊流的人)
  • 錄製會以60分鐘為間隔生成MP4檔案
  • 轉碼需要時間
  • 需要顯式的呼叫停止錄製API

鑑黃

待補充

開發注意事項(必讀)

  • 觀眾人數過多時,訊息量也會隨之增多,需注意主播端效能,常見因渲染程式碼過多導致CPU飆升卡頓
  • 主播可能因為某種原因(CRASH、斷網等)掉線,業務直播平臺需增加主播心跳,實現直播列表的實時更新
  • 互動直播不提供房間成員管理等操作,需業務直播平臺自行實現,或採用IMSDK方案