nginx+rtmp+livePush實現視頻轉流推流

需要的工具:

一臺電腦。

一個美美的心情。

centos環境

nginx(linux下部署)

rtmp模塊(linux下部署)

livePush.war包(windows下部署)

OBS(測試轉流工具)

VLC(測試拉流工具)

-----------------------我的分割線--------------------

先安裝nginx+rtmp模塊( nginx-rtmp-module-maste),沒什麼好說的。

1、wget http://nginx.org/download/nginx-1.8.0.tar.gz(如果連接沒有或者更換的,移步 nginx下載 )選擇你喜歡的版本

2、tar -zxvf nginx-1.8.0.tar.gz

3、 cd nginx-1.8.0

4、./configure --prefix=/usr/local/src/nginx --add-module=../nginx-rtmp-module --with-http_ssl_module ./configure --prefix=/usr/local/src/nginx --add-module=../nginx-rtmp-module-maste --with-http_ssl_module

5、make && make install

中間如果少什麼模塊,就去裝。

然後啟動nginx。瀏覽器中能打開就好。

可能回有這樣的一個問題 nginx: [emerg] unknown directive "rtmp"

網上說法很多,都是說沒有安裝rtmp模塊,但是我之前是安裝好了的。後來rtmp有多種。一定要選擇源碼類的哦。(nginx-rtmp-module-maste)

直接上nginx配置文件。

[java] view plain copy

##################RTMP服務################# rtmp { server { listen 1935; chunk_size 4096; application video { play /usr/local/data/video; } application live{ #第一處添加的直播字段 live on;#直播模式 hls on; #這個參數把直播服務器改造成實時回放服務器。 wait_key on; #對視頻切片進行保護,這樣就不會產生馬賽克了。 hls_path /tmp/hls; #切片視頻文件存放位置。 hls_fragment 10s; #每個視頻切片的時長。 hls_playlist_length 60s; #總共可以回看的事件,這裡設置的是1分鐘。 hls_continuous on; #連續模式。 hls_cleanup on; #對多餘的切片進行刪除。 hls_nested on; #嵌套模式。 } } } ####啟動瀏覽器查看http://localhost:80/stat http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location /stat { #第二處添加的location字段。 rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl { #第二處添加的location字段。 root /usr/nginx/nginx-rtmp-module-master/; } location /live { #這裡也是需要添加的字段。 types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } alias /opt/video/hls; expires -1; add_header Cache-Control no-cache; } location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }

這個配置文件直接用就ok了。

然後創建文件夾 /tmp/hls/

給hls賦權限。chmod 777 /tmp/hls

我這裡設置的是最高權限哦。

至此到這裡,nginx+rtmp就已經搞定了。

現在啟動nginx

1、cd /usr/local/nginx/sbin/

2、./nginx -c /usr/nginx/nginx-1.8.1/conf/nginx.conf

再瀏覽器中打開就ip,看看nginx是否成功啟動成功

打開OBS軟件,設置一下

可以再/tmp/hls下看到有一個名叫app的文件夾。我們看一下內容。

這裡有數據就ok了。

然後下一步。

使用VLC拉流。能成功的獲取到視頻才算是成功的嘛。

可以看到,這裡已經能成功的拉起到剛才推送的視頻了。到此為止,已經滿足一部分的看官了。

但是呢。我們需要繼續往下走哦。

使用livePush來代替OBS,畢竟實際項目使用,沒辦法使用OBS。他只能推一個哦。

拿到livePush的war包,再tomcat下啟動,訪問網址就出現下面的頁面

這個應用名就是你推的流的名。

視頻源是從網上隨便找了個。發佈地址應該指向到nginx上。然後點擊發布。生成一個播放地址,拿這個播放地址去剛才的VLC中去拉流就ok了。

到此為止,已經結束咯。哦。對了,war包。傳送門在此 失效請聯繫我。