nginx 单个RTMP应用程序上有多个流

dced5bon  于 2022-11-02  发布在  Nginx
关注(0)|答案(1)|浏览(215)

我目前正在设置一个RTMP流服务器。服务器运行带有RTMP模块的nginx。
其工作原理如下:

  • OBS将RTMP流发送到服务器上的应用程序。
  • 应用程序检查拖缆身份,如果正确,则允许流式传输。
  • 可以通过网站观看流。

正如你所看到的,我有多个应用程序的每一个流光。但我想一个单一的应用程序的所有流光。
我准备了如下的nginx配置。

rtmp {
        server {
                listen 1935;
                chunk_size 4096;

                hls on;
                hls_path /***/hls0;
                hls_nested on;
                hls_fragment 2s;
                hls_playlist_length 600s;
                hls_fragment_naming system;

 application test {
  live on;
  record off;
  on_publish http://localhost/php/***.php;
  on_publish_done http://localhost/php/***.php
}
[...]

现在一切都准备好了,但一次只为一个流媒体工作。2个不同的流媒体被接受(应用程序返回http代码200),但第二个无法开始流媒体。
有什么办法让这一切继续下去吗?

mklgxw1f

mklgxw1f1#

nginx不会为你这样做。要做到这一点,你需要知道一个流是否正在流,以拒绝第二个连接。应用程序需要在数据库中保存所有流的记录,或内存Map,检查on_publish,并用200或其他代码响应nginx以拒绝。

相关问题