我目前正在设置一个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),但第二个无法开始流媒体。
有什么办法让这一切继续下去吗?
1条答案
按热度按时间mklgxw1f1#
nginx不会为你这样做。要做到这一点,你需要知道一个流是否正在流,以拒绝第二个连接。应用程序需要在数据库中保存所有流的记录,或内存Map,检查on_publish,并用200或其他代码响应nginx以拒绝。