一、安装Nginx依赖库

#安装Nginx的编译环境gcc
yum install gcc-c++或者sudo apt install gcc

二、安装pcre

wget https://ftp.pcre.org/pub/pcre/pcre-8.10.tar.gz
tar -zxf pcre-8.10.tar.gz
./configure
make
make install

三、安装zlib

wget http://prdownloads.sourceforge.net/libpng/zlib-1.2.11.tar.gz
tar -zxf zlib-1.2.11.tar.gz
 ./configure
 make 
 make install

四、下载rtmp

wget  https://github.com/openssl/openssl/archive/OpenSSL_1_1_1-pre9.tar.gz
tar -zxvf v1.2.1.tar.gz

nginx rtmp降低延迟 nginx rtmp推流_nginx

五、下载OpenSSL

wget  https://github.com/openssl/openssl/archive/OpenSSL_1_1_1-pre9.tar.gz
tar -zxvf  OpenSSL_1_1_1-pre9.tar.gz

nginx rtmp降低延迟 nginx rtmp推流_nginx rtmp降低延迟_02

编译OpenSSL

./config --prefix=`pwd`/libs
make
make install
  • 执行./config --prefix=pwd/libs如下结果
  • make
  • make install

六、下载Nginx,版本是nginx-1.15.3
1、创建如下目录

cd /usr/local/

2、输入如下连接下载nginx,复制链接地址

https://github.com/nginx/nginx

nginx rtmp降低延迟 nginx rtmp推流_github_03

wget https://github.com/nginx/nginx/archive/release-1.15.3.tar.gz
tar -zxvf release-1.15.3.tar.gz

nginx rtmp降低延迟 nginx rtmp推流_Nginx_04

  • 编译nginx
./auto/configure --add-module=/root/usr/local/nginx-rtmp-module-1.2.1 --with-openssl=/root/usr/local/openssl-OpenSSL_1_1_1-pre9
make
备注:1、/root/usr/local/nginx-rtmp-module-1.2.1 是在nginx-rtmp-module-1.2.1目录下面pwd命令获取的
		  2、/root/usr/local/openssl-OpenSSL_1_1_1-pre9 是在openssl-OpenSSL_1_1_1-pre9目录下面通过pwd获取的

安装PCRE、ZLIB后执行以上脚本会出现如下图所示,表示编译正确

nginx rtmp降低延迟 nginx rtmp推流_nginx_05

  • make 执行命令是会出现如下
  • make install(生成so库) 执行命令是会出现如下
  • Nginx生成目录:/usr/local/nginx
  • 配置Nginx
//复制nginx.conf到/usr/local/nginx/conf/路径下面
cp /root/work/nginx/nginx-rtmp-module-1.2.1/test/nginx.conf /usr/local/nginx/conf/

nginx rtmp降低延迟 nginx rtmp推流_github_06

  • 打开/usr/local/nginx/conf/nginx.conf文件
  • nginx rtmp降低延迟 nginx rtmp推流_nginx_07


nginx rtmp降低延迟 nginx rtmp推流_nginx rtmp降低延迟_08

  • 验证Nginx是否在运行(ps aux | grep nginx)
  • 在当前视频文件下面输入如下命令推流
ffmpeg  -re -i cqz.mp4 -vcodec libx264 -acodec aac -f flv rtmp://47.106.15.76:1935/myapp/

nginx rtmp降低延迟 nginx rtmp推流_nginx_09


由于没有在服务器上面设置安全组,所以会报如下错误

nginx rtmp降低延迟 nginx rtmp推流_nginx_10

解决办法:添加一个安全组就可以解决问题,解决方法如下图所示

nginx rtmp降低延迟 nginx rtmp推流_nginx_11

验证推流是否成功

一、启动停止Nginx

1、启动:./nginx 2、停止:./nginx -s stop

nginx rtmp降低延迟 nginx rtmp推流_nginx rtmp降低延迟_12

二、推流成功如下图所示:

nginx rtmp降低延迟 nginx rtmp推流_github_13

使用ffmpeg进行推流,VLC进行拉流,我们可以看到拉流和推流的延迟大概是10秒左右

nginx rtmp降低延迟 nginx rtmp推流_nginx_14


备注:我们推流的过程中,用VLC可能拉流不成功,这个时候我们需要重新关闭VLC和重新复制网络的地址:rtmp://47.106.15.76:1935/myapp/