1.目前网上了解到有几种方法:(1).通过nginx的nginx-rtmp-module直接修改.c的源码。(2).通过nginx的if配合lua脚本来判断。(3).通过on_publish将1935的推流权限引到后端上判断。
目前我使用的是django+rtmp
在nginx的配置中
rtmp{
server{
listen 1935;
chunk_size 4000;
application mylive{
live on;
publish_notify on;
on_publish http://127.0.0.1:80/publish;
}
}
}
live on :表示开启rtmp流
publish_notify on :表示开启鉴权服务
on_publish :表示将鉴权引导到后端视图上去判断
注意:在这里默认是使用post进行鉴权的,也就是说你如果想要获得内容,需要使用:request.POST,当然也是可以改变的,可以使用notify_method get;改为get形式。
后端判断时:
def on_publish(request):
if request.POST.get('name')==1 and request.POST.get('pass')==2:
pass
else:
return HttpResponse(request.POST.get('name'))
在不符合条件时,直接让他跳转就可以了
这个是在推流的时候需要的鉴权,还有是在连接直播的时候的鉴权,也就是所谓的有锁的房间:
使用 on_connect url 就可以了
另外,还有其他的设置:
直播时长的控制: on_update url
以及其他的录制等等的参数。。。。。。。