使用Nginx RTMP模块同时广播多个广播流的最佳方式是什么?考虑使用Docker,但这似乎有些过头了



看起来联播单个用户RTMP流就像在我的nginx.conf文件中创建RTMP服务器配置并使用push指令将流推送到不同的社交媒体RTMP url一样简单,但如果我有多个用户需要将他们的数据流到他们自己的社交媒体直播帐户,那么最好的方法是什么?

以下是我能想到的可能的解决方案:

  1. 使用docker创建多个容器,为每个注册者安装Nginx RTMP。然后我可以编辑&管理单独的RTMP服务器配置并重新加载配置,以便每个配置都可以开始流式传输。不过,这听起来像是一大笔开销。

  2. 如果可能的话,我可以在一个环境中为每个用户设置多个RTMP服务器配置(启用了站点(,并在不关闭NGINX的情况下重新加载配置,但使用不同的端口似乎并不理想,我觉得如果在服务器重新加载配置时发生了什么事情,每个流式传输的人都有可能断开连接编辑:启用站点似乎是不可能的,因为它需要在根上下文(仅限nginx.conf(中,根据https://github.com/arut/nginx-rtmp-module/issues/1492

  3. 使用流密钥映射到每个用户RTMP推送指令,然后转发到该用户的社交媒体?

有什么想法吗?

下面是我的单服务器配置示例:

rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
push rtmp://facebook/STREAM KEY HERE;
push rtmp://youtube/STREAM KEY HERE;
}
}
}

如果你还没有学会RTMP,我是RTMP的新手:p

在GitHub上查看以下项目,它正是您所需要的:

https://github.com/jprjr/multistreamer

注意:该项目现已存档。

最新更新