#20200522 Update: 将模块更换为更新且仍在维护的nginx-http-flv-module,使用方法和效果一样,但功能更强大
RT,这个参照了obs的论坛上的帖子,然后把其中可能遇到的坑也总结了进来,从0开始编译,系统为Debian 11,root账户
1、搞一下编译环境
apt-get install git build-essential openssl libpcre3 libpcre3-dev unzip libssl-dev zlib1g-dev
编译并安装nginx
git clone https://github.com/nginx/nginx #nginx git clone https://github.com/winshining/nginx-http-flv-module #nginx-rtmp模块 cd nginx ./auto/configure --prefix=/usr/local/nginx --with-http_ssl_module --add-module=../nginx-http-flv-module --with-http_v2_module --with-stream --with-http_realip_module make make install
(你问我为啥要编译http2?万一以后你要用咋办,以后要用的时候省事啊)
写配置文件,这一行直接在nginx.conf的最后一个大括号之外贴上即可,具体功能可按照git上的说明来进行调整
vim /usr/local/nginx/conf/nginx.conf rtmp { server { listen 1935; chunk_size 4096; application live { live on; record off; } } }
实际使用方法:
按照上面的参数,URL默认格式是rtmp://yourdomain/live/***
星号内是自定义内容,可以理解为部分应用上所说的密码
另外,部分推流软件不允许密码空着(例如obs,空着会推不上去流),这时候就应该把地址拆成两份填写
流媒体地址:rtmp://yourdomain/live 密码:***
注意:流媒体地址的最后结尾不要加斜杠,系统会自动帮你加
最后,加一个nginx自启动吧
vim /lib/systemd/system/nginx.service [Unit] Description=The NGINX HTTP and reverse proxy server After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/var/run/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target 保存退出,然后 systemctl enable nginx.service #开启自启动 systemctl start nginx.servier #启动服务
参考链接:
How to set up your own private RTMP server using nginx
Installing NGINX Open Source
nginx-rtmp-module