手把手教你從安裝CentOS7.4鏡像開始,搭建IoT視頻監控系統

摘要:在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 是音視頻的媒體信息 。

推薦閱讀