快速搭建「小直播」

  • 2019 年 10 月 11 日
  • 筆記

小直播 App 是一套開源完整的在線直播解決方案,它基於雲直播服務(LVB)、即時通訊服務(IM)和對象存儲服務(COS)構建,並使用雲伺服器(CVM)提供簡單的後台服務,可以實現登錄、註冊、開播、房間列表、連麥互動、文字互動和彈幕消息等功能。

本文主要介紹如何一步步地將小直播 App 的前後台程式碼運行起來,以便能夠快速看到運行效果,整個過程大約耗時10分鐘 – 20分鐘。

一、 開通雲服務

1. 開通直播服務

1.1 申請開通影片直播服務

登錄騰訊雲官網,進入 雲直播管理控制台,如果服務還沒有開通,單擊【申請開通】。

1.2 綁定域名

您需要添加自有已備案域名才能進行直播播放,請參見 域名管理 CNAME 配置 進行配置。

1.3 申請測試 License

  1. 進入 移動直播 License
  2. 填寫【Package Name】為 Android 的包名,【Bundle Id】為 iOS 的 Bundle Id。
  1. 單擊【免費創建】。 創建成功後,頁面會顯示生成的 License 資訊。請記錄 Key 和 LicenseUrl,便於在 SDK 初始化時使用。

1.4 在應用管理中添加一個新的應用

開通直播服務並獲取 License 後,進入【雲直播控制台】>【直播SDK】>【應用管理】,單擊【創建應用】。

待應用創建完成後,記錄其 SDKAPPID 資訊。

說明: 該操作的目的是創建一個即時通訊 IM 應用,並將當前直播帳號和該即時通訊 IM 應用綁定起來。即時通訊 IM 應用能為小直播 App 提供聊天室和連麥互動的能力。

1.5 獲取直播服務配置資訊

  1. 單擊目標應用的 SDKAPPID,進入應用詳情頁面。
  1. 選擇【應用管理】頁簽,單擊【編輯】,輸入一個管理員名稱,單擊【確定】。
  2. 單擊【下載公私鑰匙】,下載並保存authkeys.txt文件。

打開公私鑰文件中 -----BEGIN PRIVATE KEY----- 開始的內容即為私鑰。

2. 開通對象存儲服務

對象存儲服務主要用於小直播 App 中的直播封面圖片存儲。

2.1 申請開通對象存儲服務

進入 對象存儲服務控制台,如果還沒有服務,直接單擊【創建存儲桶】即可,如下圖:

2.2 創建存儲桶並獲取基本資訊

  1. 填寫名稱,選擇所屬地域,設置訪問許可權為【公有讀私有寫】。單擊【確定】創建存儲桶。
  1. 單擊【基礎配置】,記錄存儲空間名稱所屬地域,分別對應於後文 修改雲伺服器配置資訊 中的 COSKEY_BUCKETCOSKEY_BUCKET_REGION

2.3 獲取密鑰資訊

進入【對象存儲控制台】>【密鑰管理】>【雲API密鑰】 獲取 APPIDSecretIdSecretKey,分別對應下文 修改雲伺服器配置資訊 中的 COSKEY_APPIDCOSKEY_SECRETIDCOSKEY_SECRETKEY

二、 騰訊雲 CVM 鏡像部署

小直播 App 單靠一套客戶端源碼還不能正常運行,需要一個簡單的帳號管理伺服器,用於提供登錄和註冊的服務。同時,我們還在該後台上開發了「精彩回放」的功能,也就是過往的直播會被錄製下來存入「回放列表」。由於直播的錄製和存儲都是騰訊雲實現的,所以該伺服器的作用僅僅是記錄歷史影片文件的列表,並提供給小直播 App 進行拉取和查詢。

1. 創建虛擬主機

領取騰訊雲2860元代金券,用於購買騰訊雲CVM雲伺服器、雲資料庫產品時可以用來抵用,節約財務成本。

進入 CVM 控制台 ,單擊【新建】開始創建雲伺服器。

選擇【自定義配置】配置符合您需求的虛擬主機,配置完成後單擊【下一步:選擇鏡像】。

2. 選取鏡像

在【選擇鏡像】頁面中的「鏡像」提供欄選擇【鏡像市場】,並單擊【從鏡像市場選擇】進服務市場選取鏡像。推薦使用圖中的【小直播鏡像】,您可以直接在搜索欄中搜索。

3. 配置雲伺服器

配置硬碟和網路,以及雲伺服器的訪問密碼,設置安全組。

注意: 請妥善保管 root 密碼,改密碼將用於後續 修改雲伺服器配置資訊 操作。

4. 查看雲伺服器資訊

付款後生成雲伺服器。請記錄外網 IP 地址,將用於後續 配置錄製回調終端集成 操作。

三、直播錄製與回調配置

小直播 App 中的「精彩回放」功能依託於雲直播的錄製功能。

1. 配製錄製參數

  1. 在雲直播菜單欄內選擇【功能模板】>【錄製配置】,單擊 "+" 進行設置。
  1. 設置基本資訊,填寫【模板名稱】,並選擇錄製文件類型(HLS、MP4 或者 FLV),單擊【保存】。

2. 配置錄製回調

  1. 在雲直播菜單欄內選擇【功能模板】>【回調配置】,單擊 "+" 創建回調模板。
  1. 填寫並記錄【回調密鑰】,填寫【錄製回調】為 http://您的雲伺服器公網 IP 地址/callback/tape_callback.php,單擊【保存】。

3. 應用配置到域名

  1. 進入雲直播控制台 域名管理,單擊推流域名後的【管理】。
  1. 單擊【模板配置】,分別將【回調配置】和【錄製配置】設置為上述步驟中新建的模板。

四、連麥

如果您需要使用連麥功能,需要 購買連麥套餐包。 更多價格及購買相關內容請參見 價格總覽

五、修改雲伺服器配置資訊

1. 準備配置文件

將以下內容粘貼到文本編輯器(如記事本),按照下方腳本中的注釋填寫各項內容,其中xxxx的部分在本文前半部分均能找到對應的值。

#!/bin/bash  echo "-----BEGIN PRIVATE KEY-----  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  -----END PRIVATE KEY-----" > /data/live_demo_service/deps/sig/private_key;  echo "<?php    define('IM_SDKAPPID',123456);   // 請替換為「獲取直播服務配置資訊」中獲取到的 SDKAppID  define('API_KEY','xxxxxxxx');   // 請替換為「配置錄製回調」中獲取到的回調密鑰    define('COSKEY_BUCKET','xxxxxxxx'); // 請替換為「創建存儲桶並獲取基本資訊」中獲取的「存儲空間名稱」  define('COSKEY_BUCKET_REGION','xxxxxxxx'); // 請替換為「創建存儲桶並獲取基本資訊」中獲取的「所屬地域」  define('COSKEY_SECRECTKEY','xxxxxxxx'); // 請替換為「獲取密鑰資訊」中您所新建的 secrectKey  define('COSKEY_APPID',123456); // 請替換為「獲取密鑰資訊」中您所新建的 APPID  define('COSKEY_SECRECTID','xxxxxxxx'); //  請替換為「獲取密鑰資訊」中您所新建的 secrectId    define('COSKEY_EXPIRED_TIME',30); // 無需修改  define('IM_ACCOUNTTYPE', '1234');  // 無需修改  define('APP_ID',123456);  // 無需修改  define('APP_BIZID',1234);  // 無需修改    ?>" > /data/live_demo_service/conf/OutDefine.php;

說明: 上面程式碼中第一個 echo 後跟著的雙引號內是 IM 私鑰的內容,將上述步驟中下載的公私鑰文件authkeys.txt中的私鑰(-----BEGIN PRIVATE KEY-----開始的內容)填到雙引號內即可。

2. 登錄雲伺服器

  1. 進入 CVM 控制台 ,單擊目標主機所在行【登錄】。
  1. 選擇【標準登錄方式】區域的【立即登錄】,輸入配置主機時設置的密碼,單擊【確認】。

3. 修改配置

登錄成功後會進入一個網頁版的控制台介面,您只需要直接將 準備配置文件 中準備好的文本粘貼過來,按 Enter 鍵確認即可。

六、終端集成

終端集成主要是修改小直播 App 源碼中的配置資訊。

1. 小直播源碼下載

小直播 App 的源碼位於 Github 倉庫中,clone 或下載源碼後,可以在Android/XiaoZhiBoiOS/XiaoZhiBo分別獲取到 Android 和 iOS 的源碼。

2. 替換小直播後台伺服器地址

小直播後台服務的地址為http://雲伺服器公網 IP 地址。例如http://134.175.197.138

  • iOS: 打開iOS/XiaoZhiBo/XiaoZhiBoApp/Classes/App/目錄下的 TCGlobalConfig.h 文件,將文件里的kHttpServerAddr改為您的小直播後台服務的地址。
  • Android: 打開Android/XiaoZhiBo/app/src/main/java/com/tencent/qcloud/xiaozhibo目錄下的 TCGlobalConfig.java 文件,將文件里的APP_SVR_URL改為您的小直播後台服務的地址。

3. 替換小直播 License 配置

  1. 進入【雲直播控制台】>【直播SDK】>【License】複製 License 的 URL 和 Key。
  2. 根據實際作業系統選擇以下操作:
    1. iOS: 打開iOS/XiaoZhiBo/XiaoZhiBoApp/Classes/App/目錄下的 AppDelegate.m 文件,將[TXLiveBase setLicenceURL: key:]調用的參數替換為您的 License URL 和 Key。
    2. Android: 打開Android/XiaoZhiBo/app/src/main/java/com/tencent/qcloud/xiaozhibo/目錄下的 TCApplication.java 文件,將String licenceUrlString licenseKey的內容分別替換為您的 License URL 和 Key。

4. 運行並測試

至此小直播的所有配置均已完成,您可以運行 App 體驗小直播的各項功能。