本文介紹RTMP推流地址及其簽名規則。
僅當Bucket ACL為非public-read-write時,推流地址需要簽名後才可以使用。簽名方法與OSS的URL簽名類似。
RTMP推流地址
RTMP推流地址格式為rtmp://${bucket}.${host}/live/${channel}?${params}
,例如rtmp://examplebucket.oss-cn-hangzhou.aliyuncs.com/live/test-channel
。
bucket
:Bucket名稱,例如examplebucket
。關於Bucket命名規範的更多資訊,請參見儲存空間(Bucket)。host
:填寫地區節點Endpoint,例如oss-cn-hangzhou.aliyuncs.com
。關於Endpoint的更多資訊,請參見訪問網域名稱和資料中心。live
:RTMP協議的App名稱,OSS固定使用live。channel
:channel名稱。例如test-channel
。關於channel命名規範的更多資訊,請參見PutLiveChannel。params
:推流參數,與HTTP請求的query string相同,格式為varA=valueA&varB=valueB
。
RTMP推流支援的URL參數
RTMP推流支援的URL參數及描述如下表所示。
名稱 | 描述 |
playlistName | 指定產生的m3u8檔案名稱。 說明 產生的m3u8檔案名稱仍被添加 |
推流地址的簽名規則
帶簽名的推流地址格式為rtmp://${bucket}.${host}/live/${channel}?OSSAccessKeyId=xxx&Expires=yyy&Signature=zzz&${params}
。
推流地址的簽名規則中包含的參數及描述如下表所示。
參數名稱 | 描述 |
OSSAccessKeyId | 與OSS HTTP簽名的AccessKeyId相同。 |
Expires | Unix時間戳記,單位為秒。 |
Signature | 簽名字串。 |
params | 其他參數。 所有的參數都需要經過簽名。 |
Signature的計算規則如下。
base64(hmac-sha1(AccessKeySecret,
+ Expires + "\n"
+ CanonicalizedParams
+ CanonicalizedResource))
Signature計算規則中涉及的參數及描述如下表所示。
名稱 | 描述 |
CanonicalizedParams | 按照param key字典序拼接所有參數,格式為 說明
|
CanonicalizedResource | 格式為 |