在Centos7上搭建Nginx+rtmp服务器

转自:https://www.cnblogs.com/xu360/articles/6783539.html

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

1.使用yum安装git

yum -y install git

2.下载nginx-rtmp-module

// 通过git clone 的方式下载到服务器上
cd /usr/local/src
git clone https://github.com/arut/nginx-rtmp-module.git

3.yum 安装 openssl

yum -y install openssl openssl-devel

4.yum 安装 gcc环境

yum -y install gcc glibc glibc-devel make nasm pkgconfig lib-devel openssl-devel expat-devel gettext-devel libtool mhash.x86_64 perl-Digest-SHA1.x86_64

二、安装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=/usr/local/src/nginx-rtmp-module --with-http_ssl_module
[root~]# make && make install

2.如果已经安装过Nginx,只需要找到Nginx源码目录添加rtmp的支持即可。(如果执行第1项,此项可忽略)

1.查看当前安装的Nginx版本
/usr/local/nginx/sbin/nginx -v
查询结果:nginx version: nginx/1.10.3

2.再使用find命令查找其位置
find / -name nginx-1.10.3
查询结果:/root/nginx-1.10.3

3.cd到查询到的源目录
cd  /root/nginx-1.10.3

4.添加rtmp的支持(如果看到一个绿色的 configure 文件就说明查找对了)
./configure --add-module=/替换为自己的安装路径(path/to)/nginx-rtmp-module
make && make install

3.启动nignx

/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

lsof -i tcp:8080

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

kill 9603

然后重新执行

/usr/local/nginx/sbin/nginx

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

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

vi /usr/local/nginx/conf/nginx.conf

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

# 在http节点后面加上rtmp配置:
rtmp {
    server {
        listen 1935;
        application rtmplive {
            live on;
            record off;
        }
    }
}

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

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

(4)安装FFmpeg

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

yum install -y epel-release

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

sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

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

yum repolist

2.安装Nux-Dextop源

导入一个Code

sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

安装nux-dextop 源

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,这个安装耗时可能较长。

yum install -y ffmpeg

安装完成后检查ffmpeg 版本

ffmpeg -version

如果看到这样的信息,表示安装成功

这样服务器就完全配置好了,剩下的工作就是通过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直播测试环境还是比较简单,如果需要投入到生产中去,还是比较复杂的,需要专业的后台人员搭建专业的直播环境并维护。不过现在有很多成熟完善的第三方直播提供商,环境搭建和集成都有详细文档,例如:七牛,腾讯云等等。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值