在ubuntu 上搭建Nginx-RTMP 直播伺服器
前言
近段時間在學習Android直播,那麼毋庸置疑ffmpeg和WebRTC是音視訊界的兩個大佬。
ffmpeg的基本使用:https://blog.csdn.net/huangliniqng/article/details/81842273
看過很多教程講解直播環境的搭建,大都是在mac環境上搭建的,對於windows使用者來說搭建起來比較繁瑣,昨天的這個時候我嘗試了在windows本地搭建Nginx-rtmp直播伺服器,最終可以成功執行。效果圖如下所示。
不過我們今天不講解如何在windows上搭建直播伺服器,如果有問題的朋友可以一起探討。今天來講解如何在ubuntu伺服器上搭建直播伺服器。(此處不造輪子,完全為了以後搭建更加方便)
1.RTMP簡介
RTMP全稱是Real Time Messaging Protocol(實時訊息傳輸協議),rmtp是一種通訊協議。該協議基於TCP,是一個協議族,包括RTMP基本協議及RTMPT/RTMPS/RTMPE等多種變種。RTMP是一種設計用來進行實時資料通訊的網路協議,主要用來在Flash/AIR平臺和支援RTMP協議的流媒體/互動伺服器之間進行音視訊和資料通訊。
2.環境搭建
如果對linux操作命令不熟悉,可以移步至我的linux系列文章:
https://mp.csdn.net/postedit/82469566
首先建立原始碼編譯的目錄然後進入。
$ mkdir nginx-src
$ cd nginx-src
下載原始碼
$ git clone https://github.com/nginx/nginx.git
$ git clone https://github.com/arut/nginx-rtmp-module.git
$ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
$ tar -xzvf pcre-8.39.tar.gz
$ cd nginx$ git checkout release-1.9.9
編譯安裝
#將configure的命令封裝成指令碼
$ vim cfg.sh
# cfg.sh檔案的內容
auto/configure --prefix=/usr/local/nginx \
--with-pcre=../pcre-8.39 \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_flv_module \
--with-http_mp4_module \
--add-module=../nginx-rtmp-module/
$ chmod a+x cfg.sh
$ ./cfg.sh
$ make
$ make install
3.配置服務環境
安裝完成後修改配置檔案執行下列操作:
進入 cd /usr/local/nginx/conf
編輯 nginx.conf,如果提示沒有許可權,可執行sudo chmod 777 nginx.conf即可取得所有許可權
編輯nginx.conf檔案,主要是新增rtmp服務
配置完成後,儲存檔案。
執行下列命令重啟nginx:
sudo /usr/local/nginx/sbin/nginx -s stop
sudo /usr/local/nginx/sbin/nginx
如果沒有出現錯誤,這時已經成功搭建好了rtmp流媒體,
那麼我們使用工具來測試,你也可以使用webrtc-android端來測試,這裡我們使用工具SmarterStreaming,下載地址:https://github.com/daniulive/SmarterStreaming
測試之前首先我們要推送一個視訊流
我們使用命令 ffmpeg -re -i soft/2.mp4 -c copy -f flv rtmp://localhost:1935/live/film
soft/2.mp4 是伺服器上的視訊地址,執行如果出現下圖所示,說明上述環境搭建的沒有問題
我們使用測試工具測試,輸入地址 rtmp://123.207.55.74:1935/live/film
效果如下圖所示:
當推流結束後則播放結束(仔細想想像電視臺一樣推送之後結束再接著推送廣告等)
歡迎關注技術公眾號,微訊號搜尋ColorfulCode 程式碼男人
分享技術文章,投稿分享,不限技術種類,不限技術深度,讓更多人因為分享而受益。