常見的直播方式是客戶輸入一方進行推流到流媒體服務端,客戶接收一方進行拉流進行觀看,技術設計交互圖如下:
架構圖中所說的流媒體服務器就是nginx搭建的rtmp模塊了,本篇詳細介紹nginx搭建rtmp模塊以及使用。
一、nginx搭建rtmp模塊
首先搭建nginx主要這邊nginx安裝包,以及nginx-rtmp-moudl,oenssl,pcre,zlib等第三方依賴,本人提供點擊openssl,pcre,zlib等安裝包
1.安裝openssl
tar -zxvf openssl-1.0.1i.tar.gz
cd openssl-1.0.1i
sudo ./config --prefix=/usr/local/openssl-1.0.1i #prefix指定安裝目錄
sudo make
sudo make install
2.安裝pcre
tar -zxvf pcre-8.35.tar.gz
cd pcre-8.35
sudo ./configure --prefix=/usr/local/pcre-8.35 #prefix指定安裝目錄
sudo make
sudo make install
3.安裝zlib
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
sudo ./configure --prefix=/usr/local/zlib-1.2.8 #prefix指定安裝目錄
sudo make
sudo make install
4.準備工作做好後,就可以進行安裝nginx-rtmp-moudl模塊,首先下載好nginx:
安裝rtmp模塊,使用git命令方式
git clone https://github.com/arut/nginx-rtmp-module.git
解壓nginx安裝包,進入nginx模塊:
./configure --prefix=/usr/local/nginx --with-openssl=/home/fengchao/openssl-1.0.1c --with-pcre=/home/fengchao/pcre-8.35 --with-zlib=/home/fengchao/zlib-1.2.11 --add-module=../nginx-rtmp-module-dev --with-http_ssl_module
編譯、安裝
make
make install
5.配置文件配置,進入nginx的conf目錄:
配置localhost:
location /hls {
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
alias /tmp/hls;
expires -1;
add_header Cache-Control no-cache;
}
配置rtmp,在nginx.cof內容最後添加(注意不要有空格):
rtmp {
server {
listen 1935;
application rtmplive {
live on;
}
application hls {
live on;
hls on;
hls_path /tmp/hls;
hls_fragment 5s;
record off;
}
}
}
二、使用hls拉流對視頻進行直播
拉流方式可以使用rtmp方式,類似rtmp://192.168.74.128/rtmplive這種格式進行推流以及拉流,這種自行不參考,作者採用的是http的方式進行拉流,使用ffmpeg的方式進行推流。
ffmpeg的推流格式如下:
ffmpeg -re -i "D://3ffc3ec0b29dd05aea22377b0a5dd867.mp4" -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://192.168.1.7:1935/hls/ggg
通過VLC media play播放器進行拉流的格式如下:
http://xxx:port/hls/gg.m3u8
三、測試案例
1.推MP4格式文件:
ffmpeg -re -i "D://test.mp4" -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://192.168.1.7:1935/hls/ggg
播放地址:
http://192.168.1.7/hls/ggg.m3u8
2.推rmvb格式文件
ffmpeg -re -i "7.rmvb" -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://192.168.1.7:1935/hls/ggg
播放地址:
http://192.168.1.7/hls/ggg.m3u8
3.推9.avi格式文件
ffmpeg -re -i "9.avi" -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://192.168.1.7:1935/hls/ggg
播放地址:
http://192.168.1.7/hls/ggg.m3u8
經過測試,常用格式都能夠進行播放!