1. 程式人生 > >簡單直播實現(一:建立本地rtmp伺服器)Mac上搭建直播伺服器Nginx+rtmp

簡單直播實現(一:建立本地rtmp伺服器)Mac上搭建直播伺服器Nginx+rtmp

簡介

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

步驟安裝

1、安裝Homebrow

Homebrew簡稱brew,是Mac OSX上的軟體包管理工具,能在Mac中方便的安裝軟體或者解除安裝軟體,可以說Homebrew就是mac下的apt-get、yum神器

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

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

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

2、安裝Nginx伺服器

增加對 nginx 的擴充套件;也就是從github上下載,home-brew對ngixnx的擴充套件

brew tap homebrew/nginx

3、安裝Nginx伺服器和rtmp模組

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

這個安裝,耗時相對來說比較長。通過操作以上步驟nginx和rtmp模組就安裝好了,下面開始來配置nginx的rtmp模組。

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

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服務

nginx

命令列如下圖所示

在瀏覽器位址列輸入:http://localhost:8080

 (直接點選)

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

4、配置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(點選下載)

7、通過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

具體請參考“步驟安裝”第三點。