使用 Nginx 和 RTMP 模块进行多路推流是一种常见的流媒体解决方案。以下是一个详细的步骤,帮助你设置 Nginx RTMP 服务器并实现多路推流。
首先,你需要安装 Nginx 和 RTMP 模块。你可以从源代码编译安装,或者使用预编译的包。
编辑 Nginx 配置文件(通常位于 /usr/local/nginx/conf/nginx.conf
或 /etc/nginx/nginx.conf
),添加 RTMP 配置。
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8080;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root /usr/local/nginx/html;
}
}
}
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
# 推流到多个目标
push rtmp://destination1.example.com/live;
push rtmp://destination2.example.com/live;
}
}
}
启动或重启 Nginx:
sudo /usr/local/nginx/sbin/nginx
如果 Nginx 已经在运行,使用以下命令重启:
sudo /usr/local/nginx/sbin/nginx -s reload
使用流媒体推流工具(如 OBS Studio)将流推送到 Nginx RTMP 服务器。配置 OBS Studio 的推流设置:
rtmp://<your-server-ip>/live
<your-stream-key>
你可以通过访问 http://<your-server-ip>:8080/stat
查看 RTMP 服务器的状态,确认流是否成功推送到多个目标。
领取专属 10元无门槛券
手把手带您无忧上云