我正在尝试设置一个 nginx 服务器,为我和一些朋友将传入的流推送到不同的流媒体平台。问题是,其中一个平台会在每个流上更改流密钥,或者有时他们想要重新生成他们的流密钥。
因此,我需要一种方法来在 nginx 运行时更改 nginx.conf 中的推送 rtmp:// 目标。nginx -s reload 和 kill -HUP PID 不起作用。我对其进行了广泛测试,它不会推送到新目标,只能使用 -s stop 重新启动 nginx 并让 nginx 加载新配置。
所以我的想法是将变量传递到 nginx 的应用程序块中,就像这样:
application friend1 {
live on;
record off;
push rtmp://live.twitchurl.tv/app/$argument_passed;
push rtmp://some.otherservice.com/live/$argument2;
}
application friend2 {
live on;
record off;
push rtmp://live.twitchurl.tv/app/$argument_passed;
push rtmp://some.otherservice.com/live/$argument2;
}
等等,然后他们流向http://myservice.com/friend1?argument_passed=key1&argument2=key2或类似的东西。经过两天的持续谷歌搜索和阅读至少 3 页(每个搜索词)的每个条目后,我真的迫切想要得到答案。
我选择 nginx 是因为它的轻量级并且我没有强大的服务器,但我绝对愿意使用任何其他 rtmp 来实现这一点。
服务器在Ubuntu上运行,nginx版本是1.15.2。
有什么想法可以解决这个问题吗?