rtmp推流如何进行鉴权

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

以及其他的录制等等的参数。。。。。。。

你可能感兴趣的:(rtmp协议的运用)