全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
对象存储 OSS

RTMP推流地址及签名

更新时间:2017-06-07 13:26:11

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的计算规则如下:

  1. base64(hmac-sha1(AccessKeySecret,
  2. + Expires + "\n"
  3. + CanonicalizedParams
  4. + CanonicalizedResource))
名称 描述
CanonicalizedResource 格式为 “/BucketName/ChannelName”
CanonicalizedParams 按照param key字典序拼接”key:value\n”,将所有的参数拼起来,如果参数个数为0,那么这一项为空。
参数中不包含SecurityToken、OSSAccessKeyId和Expire以及Signature。
每一个param key只能出现一次。
本文导读目录