轉載自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接收多個視頻流,經過剪輯軟件合成,再統一渲染,或者再推流給更高一級的流媒體服務器;為了降低功耗,還可以利用樹莓派等低功耗的設備做服務器等等。