<返回更多

视频直播服务搭建好了?教你快速实现多频道输入输出与权限控制

2020-06-17    
加入收藏

前言

前面写了一篇文章,利用Nginx和nginx-rtmp-module 快速搭建视频直播服务的,并没有实现多人多频道输入输出和权限控制。

本文是在之前文章的基础上继续的

原文地址:不会搭建视频直播服务?教你十分钟实现视频推流拉流服务

开发环境

intellij idea
JDK1.8
spring boot 2.1.5.RELEASE
nginx 视频推流拉流服务 (ps接上篇文章)

配置nginx-rtmp-module 模块

1、参数publish_notify

涉及publish_notify默认是off的,主要涉及推送的过程中一些事件。

开启publish_notify即可进行Notify的配置操作。

publish_notify on;

2、Notify的配置

Notify的配置相关是涉及直播的事件并执行回调代码。

比如:推流链接、直播开启、直播结束状态,然后异步调用http的链接,进行一些逻辑的处理。

主要的配置参数有下面这些:

on_connect
on_play
on_publish
on_done
on_play_done
on_publish_done
on_record_done
on_update
......

从上面的参数可以看出,能够触发连接、直播、输出、结束等等

比如,当触发推流的时候,通过配置

 on_publish http://www.example.com/uri 

进行权限控制,接收相关参数并进行控制,如果用户不存在,则不允许推流。

3、多频道输入输出

多个人有不同的推流和直播地址,就涉及了直播参数,而实际上,各大平台直播的时候,除了地址,都有一个直播密钥或者是直播码。

以OBS举例,串流类型选择自定义流媒体服务器,然后会出现一个URL和流密钥

视频直播服务搭建好了?教你快速实现多频道输入输出与权限控制

 

而流密钥就是实现多频道输入输出的重点。

4、配置rtmp Publish

在 rtmp -server -live 下添加如下配置

publish_notify on;
on_publish http://127.0.0.1:8080/video/auth; #授权验证地址
on_publish_done http://127.0.0.1:8080/video/done;

在之前文章的配置基础上,添加上述配置,如下图

视频直播服务搭建好了?教你快速实现多频道输入输出与权限控制

 

现在nginx 的相关配置已经完成了,输入如下命令启动nginx服务

nginx.exe -c conf/nginx-win-rtmp.conf

接下来配置鉴权服务

鉴权服务

基于spring boot 简单实现了鉴权功能,核心代码如下,

视频直播服务搭建好了?教你快速实现多频道输入输出与权限控制

 

上述代码只是做了简单的密码校验和主播下线功能,并未从数据库查询相关用户信息,只要大家弄懂原理,基于此还可以实现很多有趣的功能,项目已上传至git,有兴趣的小伙伴,可以关注后私信关键字“视频鉴权服务”获取

git获取代码后启动Spring boot项目

视频直播服务搭建好了?教你快速实现多频道输入输出与权限控制

 

打开obs推流软件,设置服务器地址和串流密钥,如下图

视频直播服务搭建好了?教你快速实现多频道输入输出与权限控制

 

流密钥的格式是:8888?password=123456,可以看出这个非常像url的get参数配置,8888就是房间的名称,而passWord就是密码。

为什么没有name=8888

自定义参数

视频直播服务搭建好了?教你快速实现多频道输入输出与权限控制

 

点击开始推流,控制台打印鉴权信息

点击停止推流,控制台打印信息,如下图

视频直播服务搭建好了?教你快速实现多频道输入输出与权限控制

 

推流和停止推流均正常进入相应方法,基于以上的知识点,后续可以开发直播房间列表,主播开播提醒等功能,感兴趣的小伙伴,赶紧自己动手实践吧

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>