快速搭建「小直播」
- 2019 年 10 月 11 日
- 筆記
小直播 App 是一套開源完整的在線直播解決方案,它基於雲直播服務(LVB)、即時通訊服務(IM)和對象存儲服務(COS)構建,並使用雲伺服器(CVM)提供簡單的後台服務,可以實現登錄、註冊、開播、房間列表、連麥互動、文字互動和彈幕消息等功能。
本文主要介紹如何一步步地將小直播 App 的前後台程式碼運行起來,以便能夠快速看到運行效果,整個過程大約耗時10分鐘 – 20分鐘。
一、 開通雲服務
1. 開通直播服務
1.1 申請開通影片直播服務
登錄騰訊雲官網,進入 雲直播管理控制台,如果服務還沒有開通,單擊【申請開通】。
1.2 綁定域名
您需要添加自有已備案域名才能進行直播播放,請參見 域名管理 和 CNAME 配置 進行配置。
1.3 申請測試 License
- 進入 移動直播 License。
- 填寫【Package Name】為 Android 的包名,【Bundle Id】為 iOS 的 Bundle Id。

- 單擊【免費創建】。 創建成功後,頁面會顯示生成的 License 資訊。請記錄 Key 和 LicenseUrl,便於在 SDK 初始化時使用。

1.4 在應用管理中添加一個新的應用
開通直播服務並獲取 License 後,進入【雲直播控制台】>【直播SDK】>【應用管理】,單擊【創建應用】。

待應用創建完成後,記錄其 SDKAPPID 資訊。
說明: 該操作的目的是創建一個即時通訊 IM 應用,並將當前直播帳號和該即時通訊 IM 應用綁定起來。即時通訊 IM 應用能為小直播 App 提供聊天室和連麥互動的能力。
1.5 獲取直播服務配置資訊
- 單擊目標應用的 SDKAPPID,進入應用詳情頁面。

- 選擇【應用管理】頁簽,單擊【編輯】,輸入一個管理員名稱,單擊【確定】。
- 單擊【下載公私鑰匙】,下載並保存
authkeys.txt
文件。

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

2. 開通對象存儲服務
對象存儲服務主要用於小直播 App 中的直播封面圖片存儲。
2.1 申請開通對象存儲服務
進入 對象存儲服務控制台,如果還沒有服務,直接單擊【創建存儲桶】即可,如下圖:

2.2 創建存儲桶並獲取基本資訊
- 填寫名稱,選擇所屬地域,設置訪問許可權為【公有讀私有寫】。單擊【確定】創建存儲桶。

- 單擊【基礎配置】,記錄
存儲空間名稱
、所屬地域
,分別對應於後文 修改雲伺服器配置資訊 中的COSKEY_BUCKET
和COSKEY_BUCKET_REGION
。

2.3 獲取密鑰資訊
進入【對象存儲控制台】>【密鑰管理】>【雲API密鑰】 獲取 APPID
、SecretId
和 SecretKey
,分別對應下文 修改雲伺服器配置資訊 中的 COSKEY_APPID
、COSKEY_SECRETID
和 COSKEY_SECRETKEY
。

二、 騰訊雲 CVM 鏡像部署
小直播 App 單靠一套客戶端源碼還不能正常運行,需要一個簡單的帳號管理伺服器,用於提供登錄和註冊的服務。同時,我們還在該後台上開發了「精彩回放」的功能,也就是過往的直播會被錄製下來存入「回放列表」。由於直播的錄製和存儲都是騰訊雲實現的,所以該伺服器的作用僅僅是記錄歷史影片文件的列表,並提供給小直播 App 進行拉取和查詢。
1. 創建虛擬主機
先領取騰訊雲2860元代金券,用於購買騰訊雲CVM雲伺服器、雲資料庫產品時可以用來抵用,節約財務成本。
進入 CVM 控制台 ,單擊【新建】開始創建雲伺服器。

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

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

3. 配置雲伺服器
配置硬碟和網路,以及雲伺服器的訪問密碼,設置安全組。
注意: 請妥善保管 root 密碼,改密碼將用於後續 修改雲伺服器配置資訊 操作。

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

三、直播錄製與回調配置
小直播 App 中的「精彩回放」功能依託於雲直播的錄製功能。
1. 配製錄製參數
- 在雲直播菜單欄內選擇【功能模板】>【錄製配置】,單擊 "+" 進行設置。

- 設置基本資訊,填寫【模板名稱】,並選擇錄製文件類型(HLS、MP4 或者 FLV),單擊【保存】。

2. 配置錄製回調
- 在雲直播菜單欄內選擇【功能模板】>【回調配置】,單擊 "+" 創建回調模板。

- 填寫並記錄【回調密鑰】,填寫【錄製回調】為
http://您的雲伺服器公網 IP 地址/callback/tape_callback.php
,單擊【保存】。

3. 應用配置到域名
- 進入雲直播控制台 域名管理,單擊推流域名後的【管理】。

- 單擊【模板配置】,分別將【回調配置】和【錄製配置】設置為上述步驟中新建的模板。

四、連麥
如果您需要使用連麥功能,需要 購買連麥套餐包。 更多價格及購買相關內容請參見 價格總覽 。
五、修改雲伺服器配置資訊
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. 登錄雲伺服器
- 進入 CVM 控制台 ,單擊目標主機所在行【登錄】。

- 選擇【標準登錄方式】區域的【立即登錄】,輸入配置主機時設置的密碼,單擊【確認】。

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

六、終端集成
終端集成主要是修改小直播 App 源碼中的配置資訊。
1. 小直播源碼下載
小直播 App 的源碼位於 Github 倉庫中,clone 或下載源碼後,可以在Android/XiaoZhiBo
和iOS/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 配置
- 進入【雲直播控制台】>【直播SDK】>【License】複製 License 的 URL 和 Key。
- 根據實際作業系統選擇以下操作:
- iOS: 打開
iOS/XiaoZhiBo/XiaoZhiBoApp/Classes/App/
目錄下的 AppDelegate.m 文件,將[TXLiveBase setLicenceURL: key:]
調用的參數替換為您的 License URL 和 Key。 - Android: 打開
Android/XiaoZhiBo/app/src/main/java/com/tencent/qcloud/xiaozhibo/
目錄下的 TCApplication.java 文件,將String licenceUrl
和String licenseKey
的內容分別替換為您的 License URL 和 Key。
- iOS: 打開
4. 運行並測試
至此小直播的所有配置均已完成,您可以運行 App 體驗小直播的各項功能。