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