Nginx RTMP 的简易鉴权

关联上一文章

https://blog.yeziruo.cn/archives/116.html

关键参数

关于鉴权相关的参数官方都是有写的,具体可以看官方文档,要实现简单的推流控制,只需关注下面两个参数:

#当用户推流时触发
on_publish <auth_url>;
#当用户停止推流时触发
on_done <auth_url>;

使用

上面两个参数在有相关操作时,会向验证地址发送一个POST请求,并通过返回的状态码决定是否接受(on_publish)。

假设我的推流地址为:

rtmp://192.168.31.155:1935/live

串联密钥为:

1?key=1926

则在你的鉴权服务端会收到如下POST请求:

app:你在Nginx中填写的应用名[live]
flashver:推流软件[FMLE/3.0 (compatible; FMSc/1.0)]
swfurl:推流地址[rtmp://192.168.31.155:1935/live]
tcurl:这也是推流地址,不知道和上面有什么区别[rtmp://192.168.31.155:1935/live]
pageurl:页面地址(不知道干啥)[]
addr:推流客户端地址[localhost]
clientid:客户端ID[1]
call:动作(publish/done)[publish]
name:串联密钥(不带类GET参数)[1]
type:类型[live]
key:这是自定义字段,类似GET的URL参数[1926]

同时你应返回一个状态码:


2XX 允许推流
4XX 地址转移(由鉴权服务器决定新的推流地址)
5XX 禁止推流

简单写了个

使用Flask快速完成。

202009185241.png

Nginx

添加新评论