1. 程式人生 > >在ubuntu 上搭建Nginx-RTMP 直播伺服器

在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 程式碼男人

分享技術文章,投稿分享,不限技術種類,不限技術深度,讓更多人因為分享而受益。