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的扩展. 

上述命令可能会执行失败,可以尝试下面这个命令:

brew tap denji/nginx

2.1.3 安装nginx+rtmp模块


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

到此安装完毕,此时与centos上安装不同的一点是,在任意目录下都可以直接运行nginx命令来启动服务。

2.1.4 查看nginx安装位置


首先来看看我们的nginx安装在哪里

brew info nginx-full

执行上面的命令后我们可以看到信息

  • nginx安装所在位置  /usr/local/opt/nginx-full/bin/nginx
  • nginx配置文件所在位置  /usr/local/etc/nginx/nginx.conf
  • nginx服务器根目录所在位置  /usr/local/var/www

2.2 修改配置文件以及启动nginx


参见centos,此处略

2.3 推拉流尝试


参见centos,此处略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值