全部產品
Search
文件中心

ApsaraVideo Live:直播連麥地址規則

更新時間:Sep 19, 2024

本文介紹連麥互動情境下主播端和連麥觀眾端的推拉流地址,主播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}&timestamp=${到期時間戳記}&token=${鑒權token}

支援RTC格式推流。

RTC:artc://live.aliyun.com/push/123?sdkAppId=d14baa88-****-4111-b5b0-3b2f60d2ef80&userId=518&timestamp=1659583716&token=2035650c0f7****a53998

拉流地址

artc://live.aliyun.com/play/${房間ID}?sdkAppId=${即時音視頻應用ID}&userId=${主播ID}&timestamp=${到期時間戳記}&token=${鑒權token}

支援RTC格式拉流。

RTC:artc://live.aliyun.com/play/123?sdkAppId=d14baa88-****-4111-b5b0-3b2f60d2ef80&userId=518&timestamp=1659583716&token=2035650c0f7****a53998

觀眾端

推流地址

artc://live.aliyun.com/push/${房間ID}?sdkAppId=${即時音視頻應用ID}&userId=${連麥觀眾ID}&timestamp=${到期時間戳記}&token=${鑒權token}

支援RTC格式推流。

RTC:artc://live.aliyun.com/push/123?sdkAppId=d14baa88-****-4111-b5b0-3b2f60d2ef80&userId=520&timestamp=1659583716&token=2035650c0f7****a53998

拉流地址

artc://live.aliyun.com/play/${房間ID}?sdkAppId=${即時音視頻應用ID}&userId=${連麥觀眾ID}&timestamp=${到期時間戳記}&token=${鑒權token}

支援RTC格式拉流。

RTC:artc://live.aliyun.com/play/123?sdkAppId=d14baa88-****-4111-b5b0-3b2f60d2ef80&userId=520&timestamp=1659583716&token=2035650c0f7****a53998

主播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}&timestamp=${到期時間戳記}&token=${鑒權token}

支援RTC格式推流。

RTC:artc://live.aliyun.com/push/111?sdkAppId=d14baa88-****-4111-b5b0-3b2f60d2ef80&userId=125&timestamp=1659583716&token=2035650c0f7****a53998

拉流地址

artc://live.aliyun.com/play/${主播A房間ID}?sdkAppId=${即時音視頻應用ID}&userId=${A主播ID}&timestamp=${到期時間戳記}&token=${鑒權token}

支援RTC格式拉流。

RTC:artc://live.aliyun.com/play/111?sdkAppId=d14baa88-****-4111-b5b0-3b2f60d2ef80&userId=125&timestamp=1659583716&token=2035650c0f7****a53998

主播B

推流地址

artc://live.aliyun.com/push/${主播B房間ID}?sdkAppId=${即時音視頻應用ID}&userId=${B主播ID}&timestamp=${到期時間戳記}&token=${鑒權token}

支援RTC格式推流。

RTC:artc://live.aliyun.com/push/222?sdkAppId=d14baa88-****-4111-b5b0-3b2f60d2ef80&userId=396&timestamp=1659583716&token=2035650c0f7****a53998

拉流地址

artc://live.aliyun.com/play/${主播B房間ID}?sdkAppId=${即時音視頻應用ID}&userId=${B主播ID}&timestamp=${到期時間戳記}&token=${鑒權token}

支援RTC格式拉流。

RTC:artc://live.aliyun.com/play/222?sdkAppId=d14baa88-****-4111-b5b0-3b2f60d2ef80&userId=396&timestamp=1659583716&token=2035650c0f7****a53998

一般觀眾的CDN播放地址

說明

一般觀眾的CDN播放地址,是指主播所在房間的CDN播放地址。不同房間CDN播放地址不同。拼接該地址時請使用觀眾對應的房間ID和主播ID。

PK互動模式下,不同主播房間的一般觀眾,需拉取各自對應主播房間的CDN播放地址。例如,觀眾C為主播A的一般觀眾,主播A連麥PK互動時,觀眾C的CDN播放地址為主播A房間的CDN播放地址。

通過手動拼接一般觀眾(非連麥觀眾)的CDN播放地址時,在拼接前需準備好以下欄位:

欄位名稱

描述

協議首碼

支援RTMP、FLV、M3U8、RTS格式地址,對應的播放協議首碼分別為:rtmp://http://http://artc://

播流網域名稱

播放網域名稱,在ApsaraVideo for Live控制台配置的即時音視頻應用對應的播放網域名稱,請參見混流配置

AppName

連麥的應用程式名稱,支援自訂,不超過255字元,支援數字、大小寫字母、短劃線(-)、底線(_)、等號(=)。

StreamId

StreamId是通過推流URL中的多個欄位拼接產生,具體拼接規則為:

  • 如果是視頻連麥,其StreamId為:${即時音視頻應用ID}_${房間ID}_${主播ID}_camera。

  • 如果是純語音連麥,其StreamId為:${即時音視頻應用ID}_${房間ID}_${主播ID}_audio。

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:rtmp://${播流網域名稱}/live/${StreamId}?auth_key=${鑒權串}

  • FLV:http://${播流網域名稱}/live/${StreamId}.flv?auth_key=${鑒權串}

  • M3U8:http://${播流網域名稱}/live/${StreamId}.m3u8?auth_key=${鑒權串}

  • RTS:artc://${播流網域名稱}/live/${StreamId}?auth_key=${鑒權串}

播放地址支援RTMP、FLV、M3U8、RTS格式。

  • 視頻連麥情境下:

    • RTMP:rtmp://example.alivecdn.com/live/d14baa88-****-4111-b5b0-3b2f60d2ef80_123_518_camera?auth_key=16632272****fd016c6d85f

    • FLV:http://example.alivecdn.com/live/d14baa88-****-4111-b5b0-3b2f60d2ef80_123_518_camera.flv?auth_key=16632272****fd016c6d85f

    • M3U8:http://example.alivecdn.com/live/d14baa88-****-4111-b5b0-3b2f60d2ef80_123_518_camera.m3u8?auth_key=16632272****fd016c6d85f

    • RTS:artc://example.alivecdn.com/live/d14baa88-****-4111-b5b0-3b2f60d2ef80_123_518_camera?auth_key=16632272****fd016c6d85f

  • 純語音連麥情境下:

    • RTMP:rtmp://example.alivecdn.com/live/d14baa88-****-4111-b5b0-3b2f60d2ef80_123_518_audio?auth_key=16632272****fd016c6d85f

    • FLV:http://example.alivecdn.com/live/d14baa88-****-4111-b5b0-3b2f60d2ef80_123_518_audio.flv?auth_key=16632272****fd016c6d85f

    • M3U8:http://example.alivecdn.com/live/d14baa88-****-4111-b5b0-3b2f60d2ef80_123_518_audio.m3u8?auth_key=16632272****fd016c6d85f

    • RTS:artc://example.alivecdn.com/live/d14baa88-****-4111-b5b0-3b2f60d2ef80_123_518_audio?auth_key=16632272****fd016c6d85f