开发者社区> 问答> 正文

RTMP推流地址及签名?

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参数

名称描述
playlistName用来指定生成的m3u8文件名称,其值覆盖LiveChannel中的配置。注意:生成的m3u8名称仍然会被添加”${channel_name}/“前缀。


推流地址的签名规则


一个带签名的推流地址形如:rtmp://${bucket}.${host}/live/${channel}?OSSAccessKeyId=xxx&Expires=yyy&Signature=zzz&${params}
参数名称描述
OSSAccessKeyId意义同OSS的HTTP签名的AccessKeyId
Expires过期时间戳,格式采用Unit timestamp
Signature签名字符串,后文会描述其计算方法
params其他参数,所有的参数都需要参与签名

Signature的计算规则如下: base64(hmac-sha1(AccessKeySecret,
    + Expires + "\n"
    + CanonicalizedParams
    + CanonicalizedResource))

名称描述
CanonicalizedResource格式为 “/BucketName/ChannelName”
[tr=rgb(239, 251, 255)][td]CanonicalizedParams 按照param key字典序拼接”key:value\n”,将所有的参数拼起来,如果参数个数为0,那么这一项为空。参数中不包含SecurityToken、OSSAccessKeyId和Expire以及Signature。每一个param key只能出现一次。

展开
收起
青衫无名 2017-10-23 10:07:47 2320 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
从 SDK 到编解码:视频直播架构解析 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载