nginx直播流媒體服務----rtmp模塊搭建

常見的直播方式是客戶輸入一方進行推流到流媒體服務端,客戶接收一方進行拉流進行觀看,技術設計交互圖如下:

 

架構圖中所說的流媒體服務器就是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

經過測試,常用格式都能夠進行播放!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章