编译安装带有RTMP模块的nginx

RT,这个参照了obs的论坛上的帖子,然后把其中可能遇到的坑也总结了进来,从0开始编译,系统为Debian9,root账户
1、搞一下编译环境

apt-get install git build-essential openssl libpcre3 libpcre3-dev unzip libssl-dev

编译并安装zlib

wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make
make install

编译并安装nginx

wget https://nginx.org/download/nginx-1.14.0.tar.gz #nginx
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip #nginx-rtmp模块
tar -zxvf nginx-1.14.0.tar.gz
unzip master.zip
cd nginx-1.14.0
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master --with-http_v2_module
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 /lib/systemd/system/nginx.service 

[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[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

发表评论

电子邮件地址不会被公开。 必填项已用*标注