N
O
D
E
M
E
D
I
A
Thinking
首页
产品
文档
博客
订单
文档
relay规则鉴权模板
2026年 5月 20日 下午3:36
## 模板说明 当我们创建relay任务时,实际上就是rtmp的play或publish操作,当我们连接远端服务器时,对方可能开启了鉴权规则。 那么我们的链接也必须要附带鉴权参数。由于目前常用的鉴权方式是附带过期时间戳的,那么每次请求时都应该是不同的签名。 当然您也可以预生成一个过期时间特别久的比如1年以后过期。 使用nms的relay规则,可以在创建时填入签名参数的模板,在nms进行relay中继任务创建时根据模板生成新的签名参数。 ## 例子 ### 1,所有推到nms的流再转推到有鉴权的阿里云  ### 2,拉取另一台有鉴权的nms的流到本地  ## 模板例子 ### nms模板 ``` {{$ts := gents 30}}{{$x := printf `/%s/%s-%d-%s` .App .Name $ts `authkey@2019`}}sign={{$ts}}-{{md5 $x}} ``` 讲解: 前面我们的鉴权算法中有说明到,生成签名前的字符串需要流信息+过期时间+密码后md5 上面的模板字符串可以分为3个部分 1. {{$ts := gents 30}} 先生成一个30秒后过期的时间戳并赋值给变量ts 2. {{$x := printf `/%s/%s-%d-%s` .App .Name $ts `authkey@2019`}} 将 流app,name,过期时间戳,密码进行字符串拼接,再赋值给变量x 3. sign={{$ts}}-{{md5 $x}} 拼接键名,键值 ### 阿里云模板 ``` {{$ts := gents 30}}{{$x := printf `/%s/%s-%d-0-0-%s` .App .Name $ts `your#aliyun#key`}}auth_key={{$ts}}-0-0-{{md5 $x}} ``` 阿里云用户直接替换 your#aliyun#key 为您在阿里云后台设置的密码即可 ### 腾讯云模板 待补充 ### 网宿模板 待补充 ## 可用函数 ### gents(add_time) 获取unix时间戳的加值,单位秒,参数不能为空可以是0 ### gentshex(add_time) 获取unix时间戳的加值的hex值,单位秒,参数不能为空可以是0 ### md5 32位md5函数 ### md516 16位md5函数 ### sha256 sha256函数 ## query参数传递 客户端url中某些自定义参数,希望通过relay传递到上级服务器, 可以使用{{.Query}}来获取 如创建push规则,arg的值为{{.Query}} 当客户端推流到nms,地址为 wss://nms_ip:8443/live/stream.rtc?abc=123&def=456 则nms创建relay输出时,会拷贝query rtmp://remote_rtmp/live/stream?abc=123&def=456 >v3.5.14及之后版本可用 ## 补充 如果对鉴权模板使用上有问题,或需要增加函数,请联系客服
嘿,我是小R,需要帮助随时找我哦
QQ客服:281269007
邮件支持
扫码加微信
回到顶部