摘要:在CentOS7.4服务器版本的环境下安装nginx服务器、配置文件服务器、流媒体服务器 。本文分享自华为云社区《华为云ECS服务器安装CentOS7.4镜像,部署GINX服务器、搭建物联网视频监控系统》,作者:DS小龙哥 。
在CentOS7.4服务器版本的环境下安装nginx服务器、配置文件服务器、流媒体服务器 。(1)配置NGINX为HTTP服务器,安装rtmp模块 , 完成rtmp视频推流,支持缓存视频到本地目录、支持转为HLS流 , 通过浏览器访问直播流 。(2)部署开机自动启动程序:方便设置自己的程序为开机启动 。
一、环境介绍环境介绍: 采用的是华为云的ECS弹性云服务器–镜像安装的CentOS7.4 64位 -----是服务器版,非桌面版哦 。在CentOS7.4服务器版本的环境下安装nginx服务器、配置文件服务器、流媒体服务器 。
(1)配置NGINX为HTTP服务器,安装rtmp模块 , 完成rtmp视频推流,支持缓存视频到本地目录、支持转为HLS流,通过浏览器访问直播流 。(2)部署开机自动启动程序:方便设置自己的程序为开机启动 。
二、Centos中安装带rtmp模块的Nginx2.1 新安装的系统可以先安装一些工具yum install -y pcre pcre-devel openssl openssl-devel zlib zlib-devel gcc gcc-c++yum install -y vim wget lsof git zip unzip2.2 获取Nginx二进制源码听说srtmp模块暂时只支持Nginx13-15版本,当前就在官网下载Nginx14
wget http://nginx.org/download/nginx-1.14.2.tar.gztar xvf nginx-1.14.2.tar.gz 2.3 获取nginx-rtmp-modulewget https://github.com/arut/nginx-rtmp-module/archive/refs/tags/v1.2.1.tar.gztar xvf v1.2.1.tar.gz2.4 编译nginxcd nginx-1.14.2./configure --add-module=../nginx-rtmp-module-1.2.1/ --with-http_ssl_modulemake && make install#建立软链接ln -s /usr/local/nginx/sbin/nginx /usr/bin特别说明:
如果在配置时报错,一般就是缺东西了,安装了再配置 。
比如:报错 ./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the mo ....解决:yum -y install pcre-develyum -y install openssl openssl-devel2.5 修改Nginx的配置文件打开/usr/local/nginx/conf/nginx.conf文件,在文件最后面加入下面的配置 。rtmp {server { listen 8888;application live {live on; }}}上面8888是rtmp推流和拉流的端口 。
修改nginx.conf之后 , 重启nginx服务:
sudo service nginx restart重启服务之后,使用netstat -ltn命令查看TCP监听的端口,确认下Nginx的监听端口是否正常 。正常情况,一个是我们自己设置的rtmp服务监听端口8888,还有一个80是Nginx默认的HTTP服务监听端口 。接下来可以在浏览器里输入本机IP地址:http://127.0.0.1/ , 查看Nginx服务开启状态 。
2.6 设置开机启动wget http://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginxchmod +x /etc/init.d/nginxupdate-rc.d nginx defaults2.7 控制nginx服务的3个命令: 启动、停止、重启service nginx startservice nginx stopservice nginx restart或者 nginx -s reload(运行中生效配置文件)2.8 进行rtmp推流服务器搭建好之后,推流和拉流的地址就是: rtmp://<服务器IP地址>:8888/live/<推流存放的目录>例如: rtmp://127.0.0.1:8888/live/xl
2.9 nginx保存推流视频文件如果需要让推流上来的文件保存下来后续进行查看历史文件,可以配置nginx进行保存 。
在原来的/usr/local/nginx/conf/nginx.conf配置文件里rtmp模块中增加新的配置:
record all;record_unique on;record_path "./video";#视频缓存的路径record_suffix -%Y-%m-%d-%H_%M_%S.flv;完整/usr/local/nginx/conf/nginx.conf里的rtmp模块的配置如下:
#RTMP服务rtmp {server { listen 8888;application live {live on;#开启实时record all; record_unique on; record_path "./video";#视频缓存的路径 record_suffix -%Y-%m-%d-%H_%M_%S.flv; }}}配置之后执行命令nginx -s reload重启服务器即可 。
2.10 rtmp直播流转为hls直播流什么是HLS直播流?
HLS 全称是 HTTP Live Streaming , 是一个由 Apple 公司提出的基于 HTTP 的媒体流传输协议 , 用于实时音视频流的传输 。目前HLS协议被广泛的应用于视频点播和直播领域 。原理介绍HLS 跟 DASH 协议的原理非常类似 。通过将整条流切割成一个小的可以通过 HTTP 下载的媒体文件,然后提供一个配套的媒体列表文件,提供给客户端,让客户端顺序地拉取这些媒体文件播放,来实现看上去是在播放一条流的效果 。由于传输层协议只需要标准的 HTTP 协议,HLS 可以方便的透过防火墙或者代理服务器 , 而且可以很方便的利用 CDN 进行分发加速 , 并且客户端实现起来也很方便 。HLS 把整个流分成一个个小的基于 HTTP 的文件来下载 , 每次只下载一些 。HLS 协议由三部分组成:HTTP、M3U8、TS 。这三部分中,HTTP 是传输协议 , M3U8 是索引文件 , TS 是音视频的媒体信息 。
推荐阅读
- 从源码入手探究一个因useImperativeHandle引起的Bug
- 如何把螃蟹杀掉(如何将螃蟹从洞里赶出来)
- C# RulesEngine 规则引擎:从入门到看懵
- C++算法之旅、02 从木棒切割问题领悟二分法精髓
- 教你如何解决T+0的问题
- 3 Python全栈工程师之从网页搭建入门到Flask全栈项目实战 - 入门Flask微框架
- 机器学习实战-AdaBoost
- 从0搭建vue3组件库:自动化发布、管理版本号、生成 changelog、tag
- 从0搭建vue3组件库: 如何完整搭建一个前端脚手架?
- WiFi万能钥匙怎么用(教你一招wifi永不断网)