在Centos7上搭建Nginx+rtmp服务器

目的

在VPS服务器上配置一个直播环境,在iOS客户端实现推流到直播服务器,通过VLC播放器实现拉取服务器上的流观看直播。

效果图

Demo_01

Centos7上搭建Nginx+rtmp服务器

今天第一次在Centos7上搭建Nginx+rtmp服务器,以前在Mac上成功搭建,所以今天想在Centos7上试一试,在此记录一下,过程还是比较顺利。

(1)准备需要的模块及工具(nginx-rtmp-module,openssl和git)

1.使用yum安装git

[root~]# yum -y install git

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

// 通过git clone 的方式下载到服务器上
[root~]# git clone https://github.com/arut/nginx-rtmp-module.git

3.yum 安装 openssl

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

(2)安装Nginx服务器。官网地址

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.如果已经安装过Nginx,只需要找到Nginx源码目录添加rtmp的支持即可。

1.查看当前安装的Nginx版本
[root~]# /usr/local/nginx/sbin/nginx -v
查询结果:nginx version: nginx/1.10.3
2.再使用find命令查找其位置
[root~]# find / -name nginx-1.10.3
查询结果:/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

安装成功

如果终端上出现了:

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

根据端口PID, kill掉(这儿的9603换成你自己8080端口的PID)

[root~]# kill 9603

然后重新执行

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

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

使用vim命令打开 nginx.conf,输入 i 进入编辑状态

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

直接滚到最后一行, 在最后一个}(即最后的空白处, 没有任何{})后面添加

# 在http节点后面加上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 

如果出现缺少Code提示,可以:

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

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

[root~]# yum repolist 

2.安装Nux-Dextop源
导入一个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

这样服务器就完全配置好了,剩下的工作就是通过VLC实现拉流观看直播,通过iOS客户端推流到服务器。

快速集成iOS直播推流

这里的直播推流我使用的是优酷土豆旗下来疯直播开源的iOS推流框架LFLiveKit,是用OC写的,文档注释很详细,很适合学习。

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

直接从GitHub上下载LFLiveKit,里面有简单的Demo,真机运行提供的Demo,将Demo中的 **stream.url ** 替换为自己的地址即可。
直播推流地址:

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

使用VLC观看推流到服务器的直播视频

将视频推流到服务器后,打开VLC,然后File->open network->输入:

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

总结

总体来说,在Centos7上搭建Nginx+rtmp直播测试环境还是比较简单,如果需要投入到生产中去,还是比较复杂的,需要专业的后台人员搭建专业的直播环境并维护。不过现在有很多成熟完善的第三方直播提供商,环境搭建和集成都有详细文档,例如:七牛,腾讯云等等。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,783评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,360评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,942评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,507评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,324评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,299评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,685评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,358评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,652评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,704评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,465评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,318评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,711评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,991评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,265评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,661评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,864评论 2 335

推荐阅读更多精彩内容