当建立或断开与 RTMP 模块的连接时,在 nginx 中触发事件
Posted
技术标签:
【中文标题】当建立或断开与 RTMP 模块的连接时,在 nginx 中触发事件【英文标题】:Trigger an event in nginx when a connection to RTMP module is made or dropped 【发布时间】:2016-07-20 13:33:52 【问题描述】:我使用 nginx RTMP 模块来广播视频流。数据从通过 3G 连接挂接的远程设备推送到 nginx/RTMP 服务器,我们按传输的 MB 付费,因此只有在有侦听器/播放器时才将视频流式传输到服务器符合我的兴趣。
(不幸的是,对于那些不熟悉 RTMP 的人来说,即使没有听众观看直播,服务器也总是在“吞食”数据。
我找到了一种开始流式传输到 nginx/RTMP 服务器的方法,因此我可以跨 3G 保存数据(将 Web 链接简单重定向到 rtmp 链接,没问题),但我找不到任何可靠的方法来检测何时RTMP 客户端(播放器)关闭连接,以阻止设备流式传输到 nginx。
所以我的问题是:有没有办法指示 nginx(或其 RTMP 模块)在与特定 RTMP URL 建立连接时触发事件、信号、创建/删除文件?我可以通过 incron 观察文件的创建/删除来生活,这样就可以了。
或者我是否需要进入 API 级别甚至更深入的源代码?
【问题讨论】:
【参考方案1】:希望您已经得到了答案。无论哪种方式,我都建议在 https://github.com/arut/nginx-rtmp-module/wiki/Directives 的指令中查看诸如 exec_publish、exec_record_done、on_play 和 on_publish 事件的标头
on_publish 可能有助于检查状态并允许或拒绝流
【讨论】:
以上是关于当建立或断开与 RTMP 模块的连接时,在 nginx 中触发事件的主要内容,如果未能解决你的问题,请参考以下文章