nginx+rtmp流媒體服務(wù)器搭建
一、nginx+rtmp簡介
Nginx本身是一個非常出色的HTTP服務(wù)器,FFMPEG是非常好的音視頻解決方案.這兩個東西通過一個nginx的模塊nginx-rtmp-module,組合在一起即可以搭建一個功能相對比較完善的流媒體服務(wù)器. 這個流媒體服務(wù)器可以支持RTMP和HLS(Live Http Stream)。
二、具體部署步驟
1. 下載nginx和nginx-rtmp-module
下載Nginx-rtmp-module
git clone https://github.com/arut/nginx-rtmp-module.git
1
下載Nginx并解壓
wget http://nginx.org/download/nginx-1.14.2.tar.gz
tar -zxvf nginx-1.14.2.tar.gz
1
2
2. 編譯安裝Nginx和Nginx-rtmp-module
安裝nginx的依賴
sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev
sudo apt-get install openssl libssl-dev
編譯并配置nginx
使用nginx的默認(rèn)配置,添加nginx的rtmp模塊。 add-module為下載的nginx-rtmp-module文件路徑。
cd nginx-1.14.2/ # 進(jìn)入nginx的目錄下
./configure --add-module=../nginx-rtmp-module
make
make install
3. 運行測試nginx
進(jìn)入安裝目錄/usr/local/nginx,運行命令./sbin/nginx,nginx重啟命令為 ./sbin/nginx -s reload.查看部署是否成功!
4. 點播視頻服務(wù)器的配置。
#rtmp配置
rtmp {
server {
listen 1935; #監(jiān)聽服務(wù)端口
chunk_size 4096; # 數(shù)據(jù)傳輸塊的大小
application vod {
play /home/zane/video/vod;#視頻文件的存放位置
}
}
}
在配置目錄/home/zane/video/vod;放一個視頻文件,放好之后重啟Nginx服務(wù)器!
使用vlc 播放器,輸入rtmp://114.115.240.14/vod/test.mp4
播放結(jié)果:
5. 直播視頻服務(wù)器的配置
在點播服務(wù)器配置文件的基礎(chǔ)上添加直播服務(wù)的配置。需要添加的一共有2個位置,第一處就是給RTMP服務(wù)添加一個application(這個名字可以任意起),也可以起多個名字,由于是直播我就叫做它live吧,如果打算弄多個頻道的直播就可以live_cctv1、live_cctv2名字任意。第二處就是添加兩個location字段.
#rtmp配置
rtmp {
server {
listen 1935; #監(jiān)聽服務(wù)端口
chunk_size 4096; # 數(shù)據(jù)傳輸塊的大小
application vod {
play /home/zane/video/vod;#視頻文件的存放位置
}
application live{ #添加的直播字段!
live on;
}
}
}
location /stat { # 第二處添加的location字段
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl{ #第二處添加的location字段
root /home/zane/nginx-rtmp/nginx-rtmp-module/;
}
添加完成之后,重啟Nginx服務(wù)器,打開瀏覽器,輸入http://114.115.240.14:81/stat(根據(jù)你自己的服務(wù)器信息組裝地址)
接著使用EV錄屏向流媒體服務(wù)器進(jìn)行推流:
此時根據(jù)nginx的狀態(tài)信息可以看到:多出紅框內(nèi)東西,說明推流成功!
使用vlc播放器播放地址rtmp://114.115.240.14/live/test,可進(jìn)行播放。
nginx+rtmp的直播配置到此結(jié)束!
6. 支持回看的直播視頻服務(wù)器
在上一步的基礎(chǔ)上,增加支持回看部分的配置
# rtmp配置
application live{ #添加的直播字段!
live on;
hls on; # 這個參數(shù)把直播服務(wù)器改造為實時回放服務(wù)器。
wait_key on; #對視頻切片服務(wù)器進(jìn)行保護(hù),這樣就不會產(chǎn)生馬賽克了!
hls_path /home/zane/video/hls;#切片視頻文件存放位置
hls_fragment 600s; #設(shè)置HLS片段長度
hls_playlist_length 10m; #設(shè)置HLS播放列表長度,這里設(shè)置的是10分鐘
hls_continuous on; #連續(xù)模式。
hls_cleanup on; #對多余的切片進(jìn)行刪除。
hls_nested on; #嵌套模式:
}
#在 http 配置中增加一個location
location /live {
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
alias /home/zane/video/hls;
expires -1;
add_header Cache-Control no-cache;
add_header Access-Control-Allow-Origin *;
}
配置完之后重啟nginx,然后用vlc播放器測試