目的
在VPS服務(wù)器上配置一個(gè)直播環(huán)境,在iOS客戶(hù)端實(shí)現(xiàn)推流到直播服務(wù)器牵现,通過(guò)VLC播放器實(shí)現(xiàn)拉取服務(wù)器上的流觀看直播。
效果圖
Centos7上搭建Nginx+rtmp服務(wù)器
今天第一次在Centos7上搭建Nginx+rtmp服務(wù)器邀桑,以前在Mac上成功搭建瞎疼,所以今天想在Centos7上試一試,在此記錄一下壁畸,過(guò)程還是比較順利贼急。
(1)準(zhǔn)備需要的模塊及工具(nginx-rtmp-module,openssl和git)
1.使用yum安裝git
[root~]# yum -y install git
2.下載nginx-rtmp-module,官方github地址
// 通過(guò)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)安裝過(guò)Nginx,只需要找到Nginx源碼目錄添加rtmp的支持即可令杈。
1.查看當(dāng)前安裝的Nginx版本
[root~]# /usr/local/nginx/sbin/nginx -v
查詢(xún)結(jié)果:nginx version: nginx/1.10.3
2.再使用find命令查找其位置
[root~]# find / -name nginx-1.10.3
查詢(xún)結(jié)果:/root/nginx-1.10.3
3.cd到查詢(xún)到的源目錄
[root~]# cd /root/nginx-1.10.3
4.添加rtmp的支持(如果看到一個(gè)綠色的 configure 文件就說(shuō)明查找對(duì)了)
[root~]# ./configure --add-module=/替換為自己的安裝路徑(path/to)/nginx-rtmp-module
[root~]# make && make install
5.啟動(dòng)nignx
[root~]# /usr/local/nginx/sbin/nginx
這樣nginx和rtmp模塊就安裝完成了腻异,此時(shí)在瀏覽器中打開(kāi) 自己的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命令打開(kāi) nginx.conf这揣,輸入 i 進(jìn)入編輯狀態(tài)
[root~]# vim /usr/local/nginx/conf/nginx.conf
直接滾到最后一行, 在最后一個(gè)}(即最后的空白處, 沒(méi)有任何{})后面添加
# 在http節(jié)點(diǎn)后面加上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影斑,因?yàn)榘惭b需要使用其他的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)入一個(gè)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,這個(gè)安裝耗時(shí)可能較長(zhǎng)残邀。
[root~]# yum install -y ffmpeg
安裝完成后檢查ffmpeg 版本
[root~]# ffmpeg -version
如果看到這樣的信息皆辽,表示安裝成功
這樣服務(wù)器就完全配置好了,剩下的工作就是通過(guò)VLC實(shí)現(xiàn)拉流觀看直播芥挣,通過(guò)iOS客戶(hù)端推流到服務(wù)器驱闷。
快速集成iOS直播推流
這里的直播推流我使用的是優(yōu)酷土豆旗下來(lái)瘋直播開(kāi)源的iOS推流框架LFLiveKit,是用OC寫(xiě)的空免,文檔注釋很詳細(xì)空另,很適合學(xué)習(xí)。
使用LFLiveKit快速集成iOS直播推流
直接從GitHub上下載LFLiveKit蹋砚,里面有簡(jiǎn)單的Demo扼菠,真機(jī)運(yùn)行提供的Demo,將Demo中的 **stream.url ** 替換為自己的地址即可坝咐。
直播推流地址:
rtmp://www.自己的域名或者ip地址:1935/rtmplive/room(room可以自己命名循榆,但是必須與VLC中拉流地址一致)
使用VLC觀看推流到服務(wù)器的直播視頻
將視頻推流到服務(wù)器后,打開(kāi)VLC墨坚,然后File->open network->輸入:
rtmp://www.自己的域名或者ip地址:1935/rtmplive/room(必須與iOS端的推流地址一致)
總結(jié)
總體來(lái)說(shuō)秧饮,在Centos7上搭建Nginx+rtmp直播測(cè)試環(huán)境還是比較簡(jiǎn)單,如果需要投入到生產(chǎn)中去泽篮,還是比較復(fù)雜的盗尸,需要專(zhuān)業(yè)的后臺(tái)人員搭建專(zhuān)業(yè)的直播環(huán)境并維護(hù)。不過(guò)現(xiàn)在有很多成熟完善的第三方直播提供商咪辱,環(huán)境搭建和集成都有詳細(xì)文檔,例如:七牛椎组,騰訊云等等油狂。