代码之家  ›  专栏  ›  技术社区  ›  LoukMouk

如何显示来自Gryphon nginx的多个rtmp流?

  •  0
  • LoukMouk  · 技术社区  · 6 年前

    -我从一个onvif ip摄像机接收到一个rtsp流链接。

    -相机一次只能承载5个流连接(我想要/需要更多连接)。

    -我被告知ffmpeg(将rtsp流转换为rtmp)和nginx(重新分发任意数量的流)的组合可以做我想要的事情。

    -我从下载了ffmpeg this 来源和nginx来源 this 来源(nginx 1.7.11.3 Gryphon.zip)。

    -下面是nginx服务器的conf文件:

    user nobody;
    worker_processes 1;
    
    events {
      worker_connections  1024;
    }
    
    rtmp {
            server {
                    listen 1935;
                    chunk_size 4096;
    
                    application live {
                            live on;
                            record off;
                    }
            }
    }
    

    -我正在使用此命令将相机流推送到nginx服务器:

    ffmpeg -hide_banner -i "rtsp://user:password123@192.168.10.116:554/videoMain" -an -f flv -rtmp_live live "rtmp://127.0.0.1:1935/live"

    -然后我可以使用vlc的开放网络流工具(rtmp://127.0.0.1:1935/live)看到输出流

    问题:

    是否可以同时拥有多个输入/输出流?

    我想让一台服务器同时重定向多个摄像头。。。

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  0
  •   LoukMouk    6 年前

    答案相当简单,我只需要在nginx.conf文件中添加第二个服务器标记:

    user nobody;
    worker_processes 1;
    
    events {
      worker_connections  1024;
    }
    
    rtmp {
            server {
                    listen 1935;
                    chunk_size 4096;
                    max_streams 512;
    
                    application live {
                            live on;
                            record off;
                    }
            }
            server {
                    listen 1936;
                    chunk_size 4096;
                    max_streams 512;
    
                    application live {
                            live on;
                            record off;
                    }
            }
    }
    

    我现在可以使用以下命令将另一个rtmp流推送到端口1936:

    ffmpeg -hide_banner -i "rtsp://user:password123@192.168.10.116:554/videoMain" -an -f flv -rtmp_live live "rtmp://127.0.0.1:1936/live"