本文介紹連麥互動情境下主播端和連麥觀眾端的推拉流地址,主播PK互動情境下不同主播端的推拉流地址,以及一般觀眾的CDN播放地址的拼接規則。
前提條件
您已經建立即時音視頻應用,具體請參見建立即時音視頻應用。
您已完成播流網域名稱的添加,請參見添加加速網域名稱;並關聯播流網域名稱和推流網域名稱,操作指引,請參見關聯播流網域名稱和推流網域名稱。
直播連麥互動或PK互動時,同一房間或者不同房間下的使用者ID(包含主播ID和連麥觀眾ID)均不能相同,必須保證使用者ID的唯一性,否則會造成衝突。例如:房間A(房間ID:A,主播ID:111,連麥觀眾ID:222),想要和房間B(房間ID:B,主播ID:222,連麥觀眾ID:333),進行連麥互動或PK,由於房間A的連麥觀眾ID(222)和房間B的主播ID(222)相同,因此可能會導致不可預知的業務錯誤。
連麥互動情境主播端和連麥觀眾端推拉流地址
通過手動拼接連麥互動主播和連麥觀眾的推拉流地址時,在拼接前需準備好以下欄位:
欄位名稱 | 描述 |
artc:// | 直播連麥互動模式URL的首碼欄位,請勿修改。 |
live.aliyun.com | 直播連麥互動模式URL固定首碼,請勿修改。 說明 live.aliyun.com不是一個真實的網域名稱,不可對其進行網域名稱的相關操作(比如ping,traceroute,telent等)。 |
push | 推流標識位固定欄位,請勿修改。 |
play | 拉流標識位固定欄位,請勿修改。 |
roomId | 房間ID,由使用者自訂,主播和連麥觀眾需使用同一個房間號。 支援數字、大小寫字母、短劃線(-)、底線(_)、等號(=),不超過64個字元。 |
sdkAppId | 即時音視頻應用ID,在直播控制台建立即時音視頻應用後會自動產生。請參見混流配置。 |
userId | 拼接主播端地址使用主播ID;拼接觀眾端地址使用連麥觀眾ID。由使用者自訂,需確保一個直播間主播ID和連麥觀眾ID不同。 支援數字、大小寫字母、短劃線(-)、底線(_)、等號(=),不超過64個字元。 |
timestamp | 連麥互動地址到期時間戳記(秒級),超過設定的時間戳記後連麥互動地址會到期失效。最大時間不能超過24小時。 |
token | 通過roomId、timestamp、userId、sdkAppId、AppKey產生的鑒權串,具體產生方式,請參見Token鑒權。 |
假設:
roomId(房間ID)值為
123
,sdkAppId(即時音視頻應用ID)值為
d14baa88-****-4111-b5b0-3b2f60d2ef80
,userId(主播ID)值為
518
,userId(連麥觀眾ID)值為
520
,timestamp(有效時間長度時間戳記)值為
1659583716
,token值為
2035650c0f7****a53998
。
則拼接規則和產生的地址樣本如下所示:
${} 實際使用時,需要將${} 資料替換為實際資料。
地址類 | 拼接規則 | 樣本 | |
主播端 | 推流地址 | artc://live.aliyun.com/push/${房間ID}?sdkAppId=${即時音視頻應用ID}&userId=${主播ID}×tamp=${到期時間戳記}&token=${鑒權token} | 支援RTC格式推流。 RTC: |
拉流地址 | artc://live.aliyun.com/play/${房間ID}?sdkAppId=${即時音視頻應用ID}&userId=${主播ID}×tamp=${到期時間戳記}&token=${鑒權token} | 支援RTC格式拉流。 RTC: | |
觀眾端 | 推流地址 | artc://live.aliyun.com/push/${房間ID}?sdkAppId=${即時音視頻應用ID}&userId=${連麥觀眾ID}×tamp=${到期時間戳記}&token=${鑒權token} | 支援RTC格式推流。 RTC: |
拉流地址 | artc://live.aliyun.com/play/${房間ID}?sdkAppId=${即時音視頻應用ID}&userId=${連麥觀眾ID}×tamp=${到期時間戳記}&token=${鑒權token} | 支援RTC格式拉流。 RTC: |
主播PK互動情境不同主播端的推拉流地址
通過手動拼接PK互動主播A和主播B的推拉流地址時,在拼接前需準備好以下欄位:
欄位名稱 | 描述 |
artc:// | 直播連麥互動模式URL的首碼欄位,請勿修改。 |
live.aliyun.com | 直播連麥互動模式URL固定欄位,請勿修改。 |
push | 推流標識位固定欄位,請勿修改。 |
play | 拉流標識位固定欄位,請勿修改。 |
roomId | 互動模式直播房間ID,由開發人員自訂,參與PK的主播需使用不同的房間ID。 支援數字、大小寫字母、短劃線(-)、底線(_)、等號(=),不超過64個字元。 |
sdkAppId | 即時音視頻應用ID,在直播控制台建立即時音視頻應用後會自動產生。請參見混流配置。 |
userId | 主播ID,由使用者自訂,參與PK的主播需使用不同的主播ID。 支援數字、大小寫字母、短劃線(-)、底線(_)、等號(=),不超過64個字元。 |
timestamp | 連麥PK互動地址到期時間戳記(秒級),超過設定的時間戳記後連麥PK互動地址會到期失效。最大時間不能超過24小時。 |
token | 通過roomId、timestamp、userId、sdkAppId、AppKey產生的鑒權串,具體產生方式,請參見Token鑒權。 |
假設:
主播A的roomId(房間ID)值為
111
,主播B的roomId(房間ID)值為
222
,sdkAppId(即時音視頻應用ID)值為
d14baa88-****-4111-b5b0-3b2f60d2ef80
,主播A的userId(主播ID)值為
125
,主播B的userId(主播ID)值為
396
,timestamp(有效時間長度時間戳記)值為
1659583716
,token值為
2035650c0f7****a53998
。
則拼接規則和產生的地址樣本如下所示:
${} 實際使用時,需要將${} 資料替換為實際資料。
地址類 | 拼接規則 | 樣本 | |
主播A | 推流地址 | artc://live.aliyun.com/push/${主播A房間ID}?sdkAppId=${即時音視頻應用ID}&userId=${A主播ID}×tamp=${到期時間戳記}&token=${鑒權token} | 支援RTC格式推流。 RTC: |
拉流地址 | artc://live.aliyun.com/play/${主播A房間ID}?sdkAppId=${即時音視頻應用ID}&userId=${A主播ID}×tamp=${到期時間戳記}&token=${鑒權token} | 支援RTC格式拉流。 RTC: | |
主播B | 推流地址 | artc://live.aliyun.com/push/${主播B房間ID}?sdkAppId=${即時音視頻應用ID}&userId=${B主播ID}×tamp=${到期時間戳記}&token=${鑒權token} | 支援RTC格式推流。 RTC: |
拉流地址 | artc://live.aliyun.com/play/${主播B房間ID}?sdkAppId=${即時音視頻應用ID}&userId=${B主播ID}×tamp=${到期時間戳記}&token=${鑒權token} | 支援RTC格式拉流。 RTC: |
一般觀眾的CDN播放地址
一般觀眾的CDN播放地址,是指主播所在房間的CDN播放地址。不同房間CDN播放地址不同。拼接該地址時請使用觀眾對應的房間ID和主播ID。
PK互動模式下,不同主播房間的一般觀眾,需拉取各自對應主播房間的CDN播放地址。例如,觀眾C為主播A的一般觀眾,主播A連麥PK互動時,觀眾C的CDN播放地址為主播A房間的CDN播放地址。
通過手動拼接一般觀眾(非連麥觀眾)的CDN播放地址時,在拼接前需準備好以下欄位:
欄位名稱 | 描述 |
協議首碼 | 支援RTMP、FLV、M3U8、RTS格式地址,對應的播放協議首碼分別為: |
播流網域名稱 | 播放網域名稱,在ApsaraVideo for Live控制台配置的即時音視頻應用對應的播放網域名稱,請參見混流配置。 |
AppName | 連麥的應用程式名稱,支援自訂,不超過255字元,支援數字、大小寫字母、短劃線(-)、底線(_)、等號(=)。 |
StreamId | StreamId是通過推流URL中的多個欄位拼接產生,具體拼接規則為:
|
auth_key 說明 開啟鑒權才需要該欄位;未開啟鑒權則不需要。 | 鑒權串,鑒權串是根據鑒權演算法得出的一個加密字串,需開啟鑒權功能才可以產生。您可以在控制台的開啟鑒權功能並擷取鑒權串,請參見配置URL鑒權,也可通過md5演算法計算擷取鑒權串,請參見鑒權URL組成。 |
StreamId欄位中,輸入資料流類型說明如下:
camera,通過網路攝影機擷取視頻輸入資料流。
shareScreen,通過螢幕畫面分享擷取視頻輸入資料流。
audio,通過麥克風擷取音頻輸入資料流。
假設sdkAppId(即時音視頻應用ID)值為d14baa88-****-4111-b5b0-3b2f60d2ef80
,roomId(房間ID)值為123
,userId(主播ID)值為518
,
視頻連麥情境下,拼接後的StreamId值為
d14baa88-****-4111-b5b0-3b2f60d2ef80_123_518_camera
。純語音連麥情境下,拼接後的StreamId值為
d14baa88-****-4111-b5b0-3b2f60d2ef80_123_518_audio
。
假設播流網域名稱值為example.alivecdn.com
,auth_key鑒權串值為16632272****fd016c6d85f
,
視頻連麥情境下,StreamId值為
d14baa88-****-4111-b5b0-3b2f60d2ef80_123_518_camera
。純語音連麥情境下,StreamId值為
d14baa88-****-4111-b5b0-3b2f60d2ef80_123_518_audio
。
拼接規則和產生的地址樣本如下所示:
推薦使用HTTP-FLV格式的地址播放。
RTMP與HTTP-FLV的地址,這兩個協議裡包含的資料內容是一致的,只是網路通訊協定通道不一樣。HTTP協議是互連網主要協議,CDN、電訊廠商、中間網路裝置等鏈路中都對HTTP有很長時間的網路最佳化,HTTP的預設80/443連接埠號碼也是常見白名單連接埠,不容易被禁用,而RTMP協議比較老,其預設連接埠號碼是1935有可能被防火牆等裝置禁用,導致異常。因此在綜合網路環境下,HTTP-FLV的穩定性、效能(卡頓、延時)會比RTMP更好。
${} 實際使用時,需要將${} 資料替換為實際資料。
地址類 | 拼接規則 | 樣本 | |
CDN播放地址 | 播流地址 |
| 播放地址支援RTMP、FLV、M3U8、RTS格式。
|