“自主研发直播”实现nginx rtmp模块多通道输入输出和权限控制


浏览:1083 次

我之前写过一篇文章,使用nginx和nginx rtmp模块实现直播。

然而,在此之前,只能进行直播。只有一个人可以推这条小溪。它没有实现多人、多通道的输入输出,也没有权限控制。只要您知道rtmp URL,就可以推送。

本文基于前一篇文章。

原始地址:

1、 权限控制

说实话,我检查了很长时间,但没有找到任何原因。最后,我花了半天时间研究了nginx rtmp模块文档,终于找到了答案。

文件中有两个主要部分需要注意:

实时配置发布_通知部分

publish_ Notify中Notify的配置部分

1.现场发布_通知

所谓的publish_ Notify是指publish_ Notify默认关闭,主要涉及推送过程中的一些事件。

打开publish_ Notify允许您配置Notify。

发布_通知;

2.Notify的配置

Notify的配置与实时事件和回调代码的执行有关。

例如,流式链接、直播开始、直播结束状态,然后异步调用http链接进行一些逻辑处理。

主要配置参数如下:

连接(_O)

正在播放

发布(_O)

on_完成

on_播放_完成

发布时完成

记录完成

_更新

......

从以上配置参数可以看出,可以触发连接、直播、输出、直播结束等,从而进行权限验证

例如,当触发流时,您可以使用on_publish控件权限,接收相关参数并控制它们。如果用户不存在,则不允许流式传输。

2、 多通道I/O

这里的多通道I/O意味着有多个活人,每个人都有不同的输出地址。

1.直播终端

很多人有不同的流媒体和直播地址,这涉及到直播参数。事实上,在各种平台上进行直播时,除了地址之外,还有直播键或直播码。

以OBS为例。选择自定义流媒体服务器作为流媒体类型,然后将显示URL和流媒体密钥。

流密钥是实现多通道输入输出的关键。

2.Rtmp发布配置

由于需要权限控制,因此需要使用发布。首先,您需要验证您的权限,以证明您有推送流的权限。

因此,rtmp的配置如下(结尾将给出完整的配置示例):

因为我们只讨论权限控制,所以我们不需要关心hls等。我也发表了评论。

#将直播的app名称设置为myapp

appmyapp{

继续;#Live on表示已启用Live模式

发布_通知;

发布(_O)https://tp5.ptbird-ubuntu/on_publish.html ;

#hls打开;

#hls_路径/tmp/hls;

#hls_片段2s;

#hls_播放列表_长度6s;

}

关键配置为:_发布;

以下是假定在web服务器上的处理程序。互联网上的一些人认为这种逻辑在本地nginx上。我建议不要把它混为一谈,直接部署在其他可以连接的web服务器上。

我安装在我的另一台ubuntu kylin web服务器上。

无论如何,可以访问的PHP处理是可以的。再多说也没用。

3.权限验证URL

示例的配置如下所示。这是模板配置的示例。

流密钥的格式为:test?Pass=123456。可以看出,这与url的get参数配置非常相似。Test是用户名,pass是密码。

为什么没有名称=测试

因为name是rtmp on_发布的默认参数name不能更改。

不得使用GET['name'],但应使用POST

起初,我总是使用get来获取参数,但我发现它并不成功,无法验证--

后来在网上查询后发现,get无法用于获取参数。尽管流密钥的格式类似于get类型,但必须使用POST来获取参数。

自定义参数

除了名称不能更改之外,其他参数可以自定义

例如,pass=123456&Check=123455

3、 代码验证权限

1.ThinkPaPHP 5版本

这里使用PHP进行验证。顺便说一下,我在thinkphp5框架中部署了上面的url。

因此,我实际上有一个路由,只使用带有html后缀的URL。

//配置直播推送的URL

路由::规则('on_publish','index/publish/index');

实际逻辑很简单:

接收两个参数

通过数据库验证

返回验证信息

必须返回http标头。返回2xx表示成功,3xx i

解决方案:
相关资讯:
生鲜企业如何进行直播销售

生鲜企业如何进行直播销售

查看
教育APP直播软件外包发展分析

教育APP直播软件外包发展分析

查看
云宝直播系统源代码构建直播源代码构建定制

云宝直播系统源代码构建直播源代码构建定制

查看
发展教育直播APP的主要原因是什么?

发展教育直播APP的主要原因是什么?

查看
农村直播电商APP将对农业市场产生什么影响?

农村直播电商APP将对农业市场产生什么影响?

查看