在Centos7上搭建Nginx+rtmp服務(wù)器

目的

在VPS服務(wù)器上配置一個直播環(huán)境,在iOS客戶端實現(xiàn)推流到直播服務(wù)器,通過VLC播放器實現(xiàn)拉取服務(wù)器上的流觀看直播。

效果圖

Demo_01

Centos7上搭建Nginx+rtmp服務(wù)器

今天第一次在Centos7上搭建Nginx+rtmp服務(wù)器,以前在Mac上成功搭建,所以今天想在Centos7上試一試,在此記錄一下,過程還是比較順利。

(1)準(zhǔn)備需要的模塊及工具(nginx-rtmp-module,openssl和git)

1.使用yum安裝git

[root~]# yum -y install git

2.下載nginx-rtmp-module,官方github地址

// 通過git clone 的方式下載到服務(wù)器上
[root~]# git clone https://github.com/arut/nginx-rtmp-module.git

3.yum 安裝 openssl

[root~]# yum -y install openssl openssl-devel

(2)安裝Nginx服務(wù)器。官網(wǎng)地址

1.下載Nginx解壓,并添加rtmp和openssl支持

//這里我安裝的是 nginx-1.10.3 版本
[root~]# wget http://nginx.org/download/nginx-1.10.3.tar.gz 
[root~]# tar -zxvf nginx-1.10.3.tar.gz 
[root~]# cd nginx-1.10.3
//添加rtmp和openssl支持
[root~]# ./configure --add-module=/替換為自己的安裝路徑(path/to)/nginx-rtmp-module --with-http_ssl_module
[root~]# make && make install

2.如果已經(jīng)安裝過Nginx,只需要找到Nginx源碼目錄添加rtmp的支持即可。

1.查看當(dāng)前安裝的Nginx版本
[root~]# /usr/local/nginx/sbin/nginx -v
查詢結(jié)果:nginx version: nginx/1.10.3
2.再使用find命令查找其位置
[root~]# find / -name nginx-1.10.3
查詢結(jié)果:/root/nginx-1.10.3
3.cd到查詢到的源目錄
[root~]# cd  /root/nginx-1.10.3
4.添加rtmp的支持(如果看到一個綠色的 configure 文件就說明查找對了)
[root~]# ./configure --add-module=/替換為自己的安裝路徑(path/to)/nginx-rtmp-module
[root~]#  make && make install
5.啟動nignx
[root~]# /usr/local/nginx/sbin/nginx 

這樣nginx和rtmp模塊就安裝完成了,此時在瀏覽器中打開 自己的ip地址或者綁定的域名:8080

安裝成功

如果終端上出現(xiàn)了:

nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use)
nginx: [emerg] still could not bind()

則表示8080端口被占用了,查看端口PID

[root~]# lsof -i tcp:8080

根據(jù)端口PID, kill掉(這兒的9603換成你自己8080端口的PID)

[root~]# kill 9603

然后重新執(zhí)行

[root~]# /usr/local/nginx/sbin/nginx 

(3)修改Nginx的配置文件nginx.conf

使用vim命令打開 nginx.conf,輸入 i 進(jìn)入編輯狀態(tài)

[root~]# vim /usr/local/nginx/conf/nginx.conf  

直接滾到最后一行, 在最后一個}(即最后的空白處, 沒有任何{})后面添加

# 在http節(jié)點后面加上rtmp配置:
rtmp {
    server {
        listen 1935;
        application rtmplive {
            live on;
            record off;
        }
    }
}

最后一步保存退出,并重啟nginx

[root~]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

(4)安裝FFmpeg

1.安裝EPEL Release,因為安裝需要使用其他的repo源,所以需要EPEL支持

[root~]# yum install -y epel-release 

如果出現(xiàn)缺少Code提示,可以:

[root~]# sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

安裝完成之后,可以查看是否安裝成功

[root~]# yum repolist 

2.安裝Nux-Dextop源
導(dǎo)入一個Code

[root~]# sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro 

安裝nux-dextop 源

[root~]# sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm

3.使用yum ffmpeg,這個安裝耗時可能較長。

[root~]# yum install -y ffmpeg

安裝完成后檢查ffmpeg 版本

[root~]# ffmpeg -version

如果看到這樣的信息,表示安裝成功

版本信息.png

這樣服務(wù)器就完全配置好了,剩下的工作就是通過VLC實現(xiàn)拉流觀看直播,通過iOS客戶端推流到服務(wù)器。

快速集成iOS直播推流

這里的直播推流我使用的是優(yōu)酷土豆旗下來瘋直播開源的iOS推流框架LFLiveKit,是用OC寫的,文檔注釋很詳細(xì),很適合學(xué)習(xí)。

使用LFLiveKit快速集成iOS直播推流

直接從GitHub上下載LFLiveKit,里面有簡單的Demo,真機(jī)運行提供的Demo,將Demo中的 **stream.url ** 替換為自己的地址即可。
直播推流地址:

rtmp://www.自己的域名或者ip地址:1935/rtmplive/room(room可以自己命名,但是必須與VLC中拉流地址一致)

使用VLC觀看推流到服務(wù)器的直播視頻

將視頻推流到服務(wù)器后,打開VLC,然后File->open network->輸入:

rtmp://www.自己的域名或者ip地址:1935/rtmplive/room(必須與iOS端的推流地址一致)

總結(jié)

總體來說,在Centos7上搭建Nginx+rtmp直播測試環(huán)境還是比較簡單,如果需要投入到生產(chǎn)中去,還是比較復(fù)雜的,需要專業(yè)的后臺人員搭建專業(yè)的直播環(huán)境并維護(hù)。不過現(xiàn)在有很多成熟完善的第三方直播提供商,環(huán)境搭建和集成都有詳細(xì)文檔,例如:七牛,騰訊云等等。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容