Mac、Centos7上基於Nginx+rtmp module的簡易流媒體服務器搭建

目錄

1 Centos上Nginx+Rtmp module流媒體服務器搭建

1.1 安裝

1.1.1 安裝gcc

1.1.2 安裝pcre

1.1.3 安裝zlib

1.1.4 安裝openssl

1.1.5 安裝Nginx+Rtmp Module

1.2 修改Nginx配置文件 && 啓動Nginx

1.2.1 修改Nginx配置文件

1.2.2 啓動nginx

1.3 推流和拉流嘗試

2 Mac OS上Nginx+Rtmp module流媒體服務器搭建

2.1 安裝

2.1.1 安裝homebrew

2.1.2 增加對 nginx 的擴展

2.1.3 安裝nginx+rtmp模塊

2.1.4 查看nginx安裝位置

2.2 修改配置文件以及啓動nginx

2.3 推拉流嘗試



1 Centos上Nginx+Rtmp module流媒體服務器搭建


1.1 安裝


每個人的安裝環境是不太一樣的,有的某些依賴包已經安裝,有的沒有,這兒儘量將所有依賴包都介紹完整。本人的實驗環境是在騰訊雲上申請的一臺雲服務器,配置以系統環境如下:

配置:

系統環境:

注意1:後續的軟件安裝都需要權限,要麼是root用戶,要麼請使用sudo su來獲取相應權限

注意2:centos上查看某個軟件是否安裝,比如gcc,可以使用rpm -qa gcc來查詢,若已經安裝,命令行將輸出版本信息,否則將什麼也不輸出

1.1.1 安裝gcc


yum -y install gcc gcc-c++

由於後續需要下載nginx源碼進行編譯安裝,編譯工具就是gcc,因此需要安裝gcc。

1.1.2 安裝pcre


yum install -y pcre pcre-devel

PCRE(Perl Compatible Regular Expressions) 是一個Perl庫,包括 perl 兼容的正則表達式庫。nginx 的 http 模塊使用 pcre 來解析正則表達式,所以需要在 linux 上安裝 pcre 庫,pcre-devel 是使用 pcre 開發的一個二次開發庫。nginx也需要此庫。

1.1.3 安裝zlib


yum install -y zlib

zlib 庫提供了很多種壓縮和解壓縮的方式, nginx 使用 zlib 對 http 包的內容進行 gzip ,所以需要在 Centos 上安裝 zlib 庫。

1.1.4 安裝openssl


yum install -y openssl

OpenSSL 是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及 SSL 協議,並提供豐富的應用程序供測試或其它目的使用。nginx 不僅支持 http 協議,還支持 https(即在ssl協議上傳輸http),所以需要在 Centos 安裝 OpenSSL 庫。

1.1.5 安裝Nginx+Rtmp Module


[root@VM_0_17_centos ~]# cd /usr/local/src    
[root@VM_0_17_centos src]# mkdir nginx  #在/usr/local/src創建nginx目錄
[root@VM_0_17_centos src]# cd nginx  #進入此目錄,nginx源碼以及rtmp模塊的源碼將下載在此目錄下
[root@VM_0_17_centos nginx]# git clone https://github.com/arut/nginx-rtmp-module.git #下載nginx-rtmp-module
[root@VM_0_17_centos nginx]# wget http://nginx.org/download/nginx-1.10.3.tar.gz  #下載nginx安裝包
[root@VM_0_17_centos nginx]# tar -zxvf nginx-1.10.3.tar.gz  #解壓nginx安裝包
[root@VM_0_17_centos nginx]# cd nginx-1.10.3   #進入解壓目錄
[root@VM_0_17_centos nginx-1.10.3]# ./configure --add-module=../nginx-rtmp-module --with-http_ssl_module   #進入常規源碼安裝3連彈之configure配置
[root@VM_0_17_centos nginx-1.10.3]# make && make install     #編譯和安裝

到此,軟件安裝完畢

1.2 修改Nginx配置文件 && 啓動Nginx


1.2.1 修改Nginx配置文件


按照上述步驟安裝完畢之後,nginx的配置文件爲/usr/local/nginx/conf/nginx.conf。使用Vim打開之

[root@VM_0_17_centos nginx]# vim /usr/local/nginx/conf/nginx.conf

打開後按i鍵進入編輯狀態,在此文件末尾加上如下配置:

rtmp {
    server {
        listen 1935;         #端口號,rtmp默認爲1935,可以修改爲其他
        application live {   #推流的app號,可以修改live爲其他
            live on;
            record off;
        }
    }
}

編輯完畢,按esc鍵退出編輯狀態,輸入:wq保存並退出vim

1.2.2 啓動nginx


1. nginx安裝後執行文件在 /usr/local/nginx/sbin/nginx,可以執行如下命令運行nginx

[root@VM_0_17_centos sbin]# /usr/local/nginx/sbin/nginx

2. 如果想在任意目錄下直接輸入nginx就啓動nginx,可以給nginx創建一個軟連接到PATH環境變量中的任意目錄,比如:當前環境中PATH環境變量包含的目錄如下:

[root@VM_0_17_centos sbin]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

那麼可以給nginx創建一個軟鏈接(類似於windows的快捷方式)到PATH環境變量的上述目錄中的一個,一般選擇/usr/local/bin:

[root@VM_0_17_centos sbin]# ln -s /usr/local/nginx/sbin/nginx  /usr/local/bin/

任意目錄執行

[root@VM_0_17_centos sbin]# nginx

3. 查看nginx是否啓動成功,可以使用netstat -ntlp命令查看

我們發現nginx啓動成功了,並且佔用了1935和80端口,1935即是rtmp的推拉流端口,80爲nginx的http服務端口

1.3 推流和拉流嘗試

推流:如果搭建nginx的機器有公網地址,比如本人申請的騰訊雲服務器(有效期15天,配置低,到2019-04-27,公網ip爲45.40.197.4 ),那麼可以在任意電腦上使用推流軟件往此服務器上推送rtmp流數據。推流的軟件可以選擇ffmpeg,OBS等,此處以ffmpeg爲例來展示:

ffmpeg -re -stream_loop -1 -i http://59.80.44.91/vjs.zencdn.net/v/oceans.mp4 -codec copy -f flv rtmp://45.40.197.4:1935/live/video

對此命令稍微解釋下:

-re : 按照時間戳讀取數據,不加此選項將直接把所有文件讀取後直接推出去

-stream_loop -1:推流次數,-1表示無限循環,0表示不循環

-i:輸入文件,此處爲網絡上的文件,也可以改爲本地文件

-codec copy:執行流拷貝,不進行轉碼

-f flv:轉封裝爲flv格式

rtmp://45.40.197.4:1935/live/video : rtmp推流地址,其中live爲配置的appname(必須與nginx配置一樣),video爲streamname

拉流:可以使用ffplay或者vlc播放器進行拉流測試,以ffplay爲例,直接執行如下命令:

ffplay rtmp://45.40.197.4:1935/live/video

2 Mac OS上Nginx+Rtmp module流媒體服務器搭建


2.1 安裝


2.1.1 安裝homebrew


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

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

2.1.2 增加對 nginx 的擴展


brew tap homebrew/nginx

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

2.1.3 安裝nginx+rtmp模塊


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

到此安裝完畢

2.1.4 查看nginx安裝位置


首先來看看我們的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

2.2 修改配置文件以及啓動nginx


參見centos,此處略

2.3 推拉流嘗試


參見centos,此處略

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章