Mac上搭建直播服務器Nginx+rtmp

簡介

nginx是很是優秀的開源服務器,用它來作hls或者rtmp流媒體服務器是很是不錯的選擇,本人在網上整理了安裝流程,分享給你們而且做備忘。html

步驟安裝

一、安裝Homebrow

Homebrew簡稱brew,是Mac OSX上的軟件包管理工具,能在Mac中方便的安裝軟件或者卸載軟件,能夠說Homebrew就是mac下的apt-get、yum神器nginx

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

若是已經安裝過,而想要卸載:git

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

二、安裝Nginx服務器

增長對 nginx 的擴展;也就是從github上下載,home-brew對ngixnx的擴展github

brew tap homebrew/nginx

三、安裝Nginx服務器和rtmp模塊

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

這個安裝,耗時相對來講比較長。經過操做以上步驟nginx和rtmp模塊就安裝好了,下面開始來配置nginx的rtmp模塊。瀏覽器

首先來看看咱們的nginx安裝在哪裏ruby

brew info nginx-full

執行上面的命令後咱們能夠看到信息服務器

  • nginx安裝所在位置  /usr/local/Cellar/nginx-full/1.10.1/bin/nginx
  • nginx配置文件所在位置  /usr/local/etc/nginx/nginx.conf
  • nginx服務器根目錄所在位置  /usr/local/var/www

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

nginx

命令行以下圖所示curl

在瀏覽器地址欄輸入:http://localhost:8080 (直接點擊)tcp

出現Welcome to nginx ,表明nginx安裝成功了。

四、配置rtmp

用Xcode打開nginx.conf, 找到/usr/local/etc/nginx/nginx.conf 文件,拖入到Dock中的Xcode,就能夠打開.

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

http {
    ……
}
#在http節點下面(也就是文件的尾部)加上rtmp配置:
rtmp {
    server {
        listen 1935;
        application zbcs {
            live on;
            record off;
        }
    }
}

說明:

  1. rtmp是協議名稱
  2. server 說明內部中是服務器相關配置
  3. listen 監聽的端口號, rtmp協議的默認端口號是1935
  4. application 訪問的應用路徑是 zbcs
  5. live on; 開啓實時
  6. record off; 不記錄數據

5. 保存文件後,從新加載nginx的配置文件(這一步很重要

nginx -s reload

6. 安裝ffmepg工具

brew install ffmpeg

安裝這個須要等一段時間, 這時你能夠準備一個視頻文件做爲來推流,而後安裝一個支持rtmp協議的視頻播放器.Mac下能夠用 VLC(點擊下載)

七、經過ffmepg命令進行推流

ffmpeg -re -i 你的視頻文件的絕對路徑(如/Users/lideshan/Downloads/Demo.mp4)  -vcodec copy -f flv rtmp://localhost:1935/zbcs/room
// 如:ffmpeg -re -i /Users/jiangys/Documents/Document/demo.mp4  -vcodec copy -f flv rtmp://localhost:1935/zbcs/room

這裏zbcs是上面的配置文件中,配置的應用的路徑名稱;後面的room能夠隨便寫。

推流界面:

8. 驗證視頻

而後電腦上打開vlc這個播放器軟件 點擊File---->Open Network 在彈出來的框中選擇Network而後輸入URL:

rtmp://localhost:1935/zbcs/room

雙擊播放

播放界面

報錯處理

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

出現這個錯,是由於配置了nginx.conf後,須要重啓nginx。輸入命令重啓後就沒有問題了

nginx -s reload

2.安裝完nginx後,在瀏覽器地址欄輸入:http://localhost:8080 顯示打不開網頁

解決方式:因爲安裝後nginx服務器,有時須要等上幾分鐘才生效。若是還不生效,測試下是否能成功啓動nginx服務,命令

nginx

具體請參考「步驟安裝」第三點。

 

另:當前只支持rtmp拉流,若是想要支持HLS ,請參考下一篇文章:

Mac直播服務器Nginx配置對HLS的支持

 

參考:Mac上搭建直播服務器Nginx

相關文章
相關標籤/搜索