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配置檔案。
##################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包。傳送門在此 失效請聯絡我。
送上自己的公眾號.