1. 程式人生 > >nginx+nginx-rtmp-module實現直播服務

nginx+nginx-rtmp-module實現直播服務

環境

centos 6.8

nginx 1.10.3

nginx-rtmp-module

下載nginx-rtmp-module

當前目錄/opt

git clone https://github.com/arut/nginx-rtmp-module.git  

下載編譯nginx

當前目錄/opt

wget http://nginx.org/download/nginx-1.10.3.tar.gz

tar -xvf nginx-1.10.3.tar.gz && cd nginx-1.10.3

./configure --add-module=../nginx-rtmp-module

make && make install

cd /usr/local/nginx

mkdir nginx-rtmp-module

cd nginx-rtmp-module && cp /opt/nginx-rtmp-module/stat.xsl ./

這樣rtmp模組就安裝好了

改配置檔案

當前目錄 /usr/local/nginx/conf

vim nginx.conf

rtmp {                #RTMP服務
    server {
        listen 1935;  #//服務埠 
        chunk_size 4096;   #//資料傳輸塊的大小

        application vod {
                play /opt/video/vod; #//視訊檔案存放位置。
        }
        application live{ #開啟直播
                live on;
                hls on; #這個引數把直播伺服器改造成實時回放伺服器。
                wait_key on; #對視訊切片進行保護,這樣就不會產生馬賽克了。
                hls_path /opt/video/live; #切片視訊檔案存放位置。
                hls_fragment 10s;     #每個視訊切片的時長。
                hls_playlist_length 6000000s;  #總共可以回看的事件,這裡設定的是1分鐘。
                hls_continuous on; #連續模式。
                hls_cleanup on;    #對多餘的切片進行刪除。
                hls_nested on;     #巢狀模式。
        }
    }
}

點播

然後我們上傳一個test.mp4檔案到 /opt/video/vod/

用vlc播放

示例圖片

然後我們點播播放地址就是

rtmp://地址/vod/test.mp4

直播

示例圖片

推流地址 觀看地址 回放地址

rtmp://地址/live/直播名

推流,我們使用ffmpeg推攝像頭流

#! /bin/bash

ffmpeg -f avfoundation -framerate 30 -video_size 1280*720 -i  "0" -vcodec libx264 -preset ultrafast -acodec libfaac -f flv  rtmp://video.yuuuu.wang/live/test1

示例圖片

錄製的檔案

示例圖片

我們可以看到,已經生成了切片檔案ts和索引檔案m3u8