Windows下利用nginx流媒體服務器rtmp推拉流測試


轉載自Hello愛微玩-在家搭個直播平台:Windows下利用nginx流媒體服務器rtmp推拉流測試

一、nginx的安裝配置

http://nginx-win.ecsds.eu/download/中下載nginx 1.7.11.3 Gryphon.zip並解壓。

在解壓好的nginx 1.7.11.3 Gryphon目錄下新建三個文件夾:m3u8File、rec、vod

進入nginx 1.7.11.3 Gryphon文件夾的conf目錄下,新建一個文件“nginx.conf”,復制下面的內容進去並保存:

worker_processes  1;   #Nginx進程數,建議設置為等於CPU總核數

events {
    worker_connections  1024;  #工作模式與連接數上限
}

rtmp_auto_push on;

#RTMP服務
rtmp{
    server{
        listen 1935;        #服務端口
        chunk_size 4096;    #數據傳輸塊的大小

        application vod{
            play ./vod;     #視頻文件存放位置
        }

        application live{
            live on;             #開啟直播
            hls on;              #開啟hls直播。這個參數把直播服務器改造成實時回放服務器
            #wait_key on;        #對視頻切片進行保護,這樣就不會產生馬賽克了
            hls_path ./m3u8File;         #切片視頻文件存放位置(HLS,m3u8文件存放位置)
            hls_fragment 2s;             #每個視頻切片的時長
            hls_playlist_length 16s;
            recorder myRecord{
                record all manual;
                record_suffix _.flv;
                record_path ./rec;
            }
            #hls_continuous on;          #連續模式
            #hls_cleanup on;             #對多余的切片進行刪除
            #hls_nested on;              #嵌套模式
        }
    }
}

#HTTP服務
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile      on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        location /live_hls{
            types{
                #m3u8 type設置
                application/vnd.apple.mpegurl m3u8;

                #ts分片文件設置
                video/mp2t ts;

            }

            #指向訪問m3u8文件目錄
            alias ./m3u8File;

            add_header Cache-Control no-cache; #禁止緩存
        }

        location /control{
            rtmp_control all;
        }


        location /stat{
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }

        location /stat.xsl{
            root ./nginx-rtmp-module-master;
        }


        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

接下來用CMD進入nginx 1.7.11.3 Gryphon目錄,並執行 start nginx 命令,啟動nginx服務。怎么看啟動成功沒有呢,用瀏覽器訪問http://127.0.0.1如果出現Welcome to nginx!就ok了。

二、推流測試

有了這個電腦做服務器,就可以用手機拍東西並實時上傳了。手機上需要裝一個推流APP,可以用杏林推流apk,非常簡潔。

進去以后,填寫推流URL:

注意啊,手機和電腦需要在同一個局域網下(同一WIFI或開熱點都行)。

再就是URL的格式,rtmp://服務器(Windows電腦)的IP地址/live/test1(此處test1可以改,不過和后續的實驗步驟要統一)

三、拉流測試

也就是收看直播,這里需要使用支持rtmp協議的播放器,我用的PotPlayer

填入要拉取的流媒體URL,格式為rtmp://127.0.0.1/live/test1

可以看到在PotPlayer中出現視頻畫面了,表示拉流成功了(會有幾秒鍾延遲).

四、狀態監測

這一步不是必需的,只是對視頻流的接受情況作監測。

https://github.com/arut/nginx-rtmp-module/,下載nginx-rtmp-module-master.zip,解壓后復制到目錄:nginx 1.7.11.3 Gryphon下,如圖:

然后我們在瀏覽器中輸入http://127.0.0.1/stat。如下圖所示,在下面的頁面中我們就可以進行直播狀態監測了

 五、思維發散

只是在家中的一個最簡單的直播平台實現,原理在這了,怎么用就各家有各家的高招了。

我想到了幾個可用的案例,比如把舊手機改造成監控攝像頭,放到你想監控的地方,用PC來進行錄像;利用無人機和無線網絡,向地面實時傳送視頻流;本地PC接收多個視頻流,經過剪輯軟件合成,再統一渲染,或者再推流給更高一級的流媒體服務器;為了降低功耗,還可以利用樹莓派等低功耗的設備做服務器等等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM