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

  1. ##################RTMP服務#################
  2. rtmp {
  3. server {
  4. listen 1935;
  5. chunk_size 4096;
  6. application video {
  7. play /usr/local/data/video;
  8. }
  9. application live{ #第一處添加的直播字段
  10. live on;#直播模式
  11. hls on; #這個參數把直播服務器改造成實時回放服務器。
  12. wait_key on; #對視頻切片進行保護,這樣就不會產生馬賽克了。
  13. hls_path /tmp/hls; #切片視頻文件存放位置。
  14. hls_fragment 10s; #每個視頻切片的時長。
  15. hls_playlist_length 60s; #總共可以回看的事件,這裡設置的是1分鐘。
  16. hls_continuous on; #連續模式。
  17. hls_cleanup on; #對多餘的切片進行刪除。
  18. hls_nested on; #嵌套模式。
  19. }
  20. }
  21. }
  22. ####啟動瀏覽器查看http://localhost:80/stat
  23. http {
  24. include mime.types;
  25. default_type application/octet-stream;
  26. sendfile on;
  27. keepalive_timeout 65;
  28. server {
  29. listen 80;
  30. server_name localhost;
  31. location /stat {
  32. #第二處添加的location字段。
  33. rtmp_stat all;
  34. rtmp_stat_stylesheet stat.xsl;
  35. }
  36. location /stat.xsl {
  37. #第二處添加的location字段。
  38. root /usr/nginx/nginx-rtmp-module-master/;
  39. }
  40. location /live { #這裡也是需要添加的字段。
  41. types {
  42. application/vnd.apple.mpegurl m3u8;
  43. video/mp2t ts;
  44. }
  45. alias /opt/video/hls;
  46. expires -1;
  47. add_header Cache-Control no-cache;
  48. }
  49. location / {
  50. root html;
  51. index index.html index.htm;
  52. }
  53. error_page 500 502 503 504 /50x.html;
  54. location = /50x.html {
  55. root html;
  56. }
  57. }
  58. }

這個配置文件直接用就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是否成功啟動成功

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

打開OBS軟件,設置一下

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

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

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

這裡有數據就ok了。

然後下一步。

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

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

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

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

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

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

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

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

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

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

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


分享到:


相關文章: