RTMP推流地址形如:rtmp://your-bucket.oss-cn-hangzhou.aliyuncs.com/live/test-channel
其组成规则为: rtmp://${bucket}.${host}/live/${channel}?${params}
- live为RTMP协议的app名称,OSS固定使用live。
- params为推流的参数,格式与HTTP请求的query string相同,即形如”varA=valueA&varB=valueB“。
- BucketAcl非public-read-write时,推流地址需要签名才可以使用;签名方法类似OSS的Url签名,但有一些细节上的不同,后文会描述具体的规则。
RTMP推流支持的url参数
推流地址的签名规则
一个带签名的推流地址形如:rtmp://${bucket}.${host}/live/${channel}?OSSAccessKeyId=xxx&Expires=yyy&Signature=zzz&${params}
Signature的计算规则如下:
base64(hmac-sha1(AccessKeySecret,
+ Expires + "\n"
+ CanonicalizedParams
+ CanonicalizedResource))
[tr=rgb(239, 251, 255)][td]CanonicalizedParams
按照param key字典序拼接”key:value\n”,将所有的参数拼起来,如果参数个数为0,那么这一项为空。参数中不包含SecurityToken、OSSAccessKeyId和Expire以及Signature。每一个param key只能出现一次。 |