编译安装带有RTMP模块的nginx

RT,这个参照了obs的论坛上的帖子,然后把其中可能遇到的坑也总结了进来,从0开始编译,系统为Debian 10,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/sergey-dryabzhinsky/nginx-rtmp-module #nginx-rtmp模块
cd nginx
./auto/configure --prefix=/usr/local/nginx --with-http_ssl_module --add-module=../nginx-rtmp-module --with-http_v2_module --with-stream
make
make install

(你问我为啥要编译http2?万一以后你要用咋办,以后要用的时候省事啊)
写配置文件,这一行直接在nginx.conf的最后一个大括号之外贴上即可,具体功能可按照git上的说明来进行调整

rtmp {
        server {
                listen 1935;
                chunk_size 4096;
                application live {
                        live on;
                        record off;
                }
        }
}

实际使用方法:
按照上面的参数,URL默认格式是rtmp://yourdomain/live/***
星号内是自定义内容,可以理解为部分应用上所说的密码
另外,部分推流软件不允许密码空着(例如obs,空着会推不上去流),这时候就应该把地址拆成两份填写

流媒体地址:rtmp://yourdomain/live
密码:***

注意:流媒体地址的最后结尾不要加斜杠,系统会自动帮你加
最后,加一个nginx自启动吧

vim /usr/lib/systemd/system/nginx.service

[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.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=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

保存退出,然后

systemctl enable nginx.service #开启自启动
systemctl disable nginx.service #关闭自启动

参考链接:
How to set up your own private RTMP server using nginx
Installing NGINX Open Source
nginx-rtmp-module