一、背景
使用 Nginx + Nginx-rtmp-module 搭建流媒体服务器,在已安装 Nginx 的前提下。

二、具体操作
nginx-rtmp-module的官方github地址:https://github.com/arut/nginx-rtmp-module

下载需要的 Nginx-rtmp-module 模块 (在 /opt 目录下)
# git clone https://github.com/arut/nginx-rtmp-module.git

下载 Nginx 源码(版本应与之前相对应)
# wget http://nginx.org/download/nginx-1.16.1.tar.gz
# tar -zxvf nginx-1.16.1.tar.gz

进入 Nginx 目录
# cd nginx-1.16.1

查看已经安装过的模块(/usr/local/nginx 是安装目录)
# /usr/local/nginx/sbin/nginx -V

生成 Makefile,为下一步的编译做准备,注意这里很关键,需要加上之前已经安装好的模块
# ./configure –add-module=/opt/nginx-rtmp-module [… 复制之前已经安装好的模块]

开始编译,但别安装 (make install 会直接覆盖安装)
# make

注意先备份一下之前老的,手动安装一下。
将 nginx 运行文件备份一份,然后将 /opt/nginx-1.16.1/objs/nginx 复制到 安装目录/usr/local/nginx/sbin/nginx ,替换成新编译的 Nginx运行文件
# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_back
# cp -f objs/nginx /usr/local/nginx/sbin/nginx

重启 Nginx
# /usr/local/nginx/sbin/nginx -s reload

 
然后再使用 /usr/local/nginx/sbin/nginx -V 命令查看 Nginx 配置,发现 nginx-rtmp-module 模块已经有了。

三、配置 nginx.conf ,使之支持 rtmp
vi /usr/local/nginx/conf/nginx.conf
1
在文件中加入下面内容,http段外面(加载最后面就行,独立模块)

rtmp {

server {

listen 554; #监听的端口

chunk_size 4000;

application hls { #rtmp推流请求路径
live on;
hls on;
hls_path /opt/hik-hls/hls;
hls_fragment 5s;
}
}
}
 
还有就是这个路径,看你自己的实际情况的访问根目录来,我的是 /opt/hik-hls/hls 这个路径,然而 /opt/hik-hls/hls 肯定没有这个目录,所以需要建一个放流文件的目录hls,并且需要改权限可读可写的权限
 
然后重启 Nginx:

/usr/local/nginx/sbin/nginx -s reload
 

【注】:如果执行 make 编译失败,请参考以下文章

 

————————————————
版权声明:本文为CSDN博主「Siona_xin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_33833327/article/details/109154307