1. 程式人生 > >nginx+rtmp+ffmpeg推流

nginx+rtmp+ffmpeg推流

簡介

nginx是非常優秀的開源伺服器,用它來做hls或者rtmp流媒體伺服器是非常不錯的選擇,本人在網上整理了安裝流程,分享給大家並且作備忘。

一、安裝Homebrow

已經安裝了brow的可以直接跳過這一步。
執行命令

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

如果已經安裝過,而想要解除安裝:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)
"

二、安裝nginx

先glone nginx專案到本地:

brew tap homebrew/nginx

執行安裝:

brew install nginx-full --with-rtmp-module

安裝過程比較緩慢,耐心等待
通過操作以上步驟nginx和rtmp模組就安裝好了,下面開始來配置nginx的rtmp模組

首先來看看我們的nginx安裝在哪裡了

brew info nginx-full

執行上面的命令後我們可以看到資訊


nginx基本資訊.01

nginx安裝所在位置

/usr/local/Cellar/nginx-full/1.10.1/bin/nginx

nginx配置檔案所在位置,修改完配置檔案可能需要執行 sudo nginx -s reload

/usr/local/etc/nginx/nginx.conf

三、執行nginx

執行命令 ,測試下是否能成功啟動nginx服務

nginx

命令列如下圖所示


Welcome to nginx!.03

代表nginx安裝成功了

如果終端上提示

nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)

則表示8080
埠被佔用了, 檢視埠PID

lsof -i tcp:8080

kill掉佔用8080埠的PID

kill 9603(這裡替換成佔用8080埠的PID)

然後重新執行nginx

nginx常用方法:重新載入配置檔案

nginx -s reload

重新載入日誌:

 nginx -s reopen

// 停止 nginx

nginx -s stop

// 有序退出 nginx

nginx -s quit

四、配置rtmp

現在我們來修改nginx.conf這個配置檔案,配置rtmp
複製nginx配置檔案所在位置

/usr/local/etc/nginx/nginx.conf

開啟Finder Shift + command + G前往,用記事本工具開啟nginx.conf

http {
    ……
}

在http節點後面加上rtmp配置:

rtmp {

  server {
      listen 1935;


    #直播流配置
      application rtmplive {
          live on;
      #為 rtmp 引擎設定最大連線數。預設為 off
      max_connections 1024;


       }


      application hls{

          live on;
          hls on;
          hls_path /usr/local/var/www/hls;
          hls_fragment 1s;
      }
   }
}

六、安裝ffmepg工具

brew install ffmpeg

安裝這個需要等一段時間等待吧 然後準備一個視訊檔案作為來推流,然後我們在安裝一個支援rtmp協議的視訊播放器,Mac下可以用VLC


VLC.04


顯示下圖表示ffmpeg安裝完畢

如果提示出錯,可能需要重啟nginx

1.ffmepg命令推流的時候,提示連線失敗。[tcp @ 0x7ff162504b60] Connection to tcp://localhost:1935 failed (Connection refused), trying next address

出現這個錯,是因為配置了nginx.conf後,需要重啟nginx。輸入命令重啟後就沒有問題了

推流命令:

test