0
点赞
收藏
分享

微信扫一扫

centos7.5 Nginx+rtmp 搭建流媒体服务器

开源分享 2022-02-19 阅读 73

centos7.5 Nginx+rtmp 搭建流媒体服务器

一. gcc 安装
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:

yum -y install gcc gcc-c++


二. PCRE pcre-devel 安装

PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:

yum install -y pcre pcre-devel



三. zlib 安装

zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。

yum install -y zlib zlib-devel



四. OpenSSL 安装

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。

1、第一种安装方式

yum install -y openssl openssl-devel

2、第二种安装方式(源码编译安装)

sudo wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz

sudo tar -zxvf openssl-1.1.0e.tar.gz

cd openssl-1.1.0e/

sudo ./config

sudo make

sudo make install

3、第三种安装方式(已经使用此方案,安装成功)

# 查看openssl版本
openssl version

下载openssl

sudo wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz

  解压并编译安装

tar -zxvf openssl-1.1.1c.tar.gz
cd openssl-1.1.1c
./config --prefix=/usr/local/openssl   #如果此步骤报错,需要安装perl以及gcc包
make && make install
mv /usr/bin/openssl /usr/bin/openssl.bak
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig -v                    # 设置生效
# 查看openssl版本
openssl version


五、安装nginx 跟rtmp  MP4模块

1.官网下载直接下载.tar.gz安装包

下载Nginx
 

wget http://nginx.org/download/nginx-1.12.1.tar.gz

下载 Rtmp

wget https://github.com/arut/nginx-rtmp-module/archive/v1.2.0.tar.gz


下载flv和mp4支持模块

wget http://h264.code-shop.com/download/nginx_mod_h264_streaming-2.2.7.tar.gz


2.解压

tar -zxvf nginx-1.12.1.tar.gz

tar -zxvf nginx_mod_h264_streaming-2.2.7.tar.gz

tar -zxvf v1.2.0.tar.gz

3、修改配置nginx openssl 的配置文件,否则会找不到openssl库


修改配置文件不然会报openssl库找不到错误
修改 /home/nginxdir/nginx-1.12.1/auto/lib/openssl/conf文件

增加下面这个分支替换增加的路径

if [ $ngx_found = no ]; then

            ngx_feature="OpenSSL library in //root/liushen/nginx/openssl-OpenSSL_1_1_0f/bin/include"
            ngx_feature_path="/root/liushen/nginx/openssl-OpenSSL_1_1_0f/bin/include"

            if [ $NGX_RPATH = YES ]; then
                ngx_feature_libs="-R/root/liushen/nginx/openssl-OpenSSL_1_1_0f/bin/lib -L/root/liushen/nginx/openssl-OpenSSL_1_1_0f/bin/ -lssl -lcrypto $NGX_LIBDL"
            else
                ngx_feature_libs="-L/root/liushen/nginx/openssl-OpenSSL_1_1_0f/bin/lib -lssl -lcrypto $NGX_LIBDL"
            fi
          . auto/feature
        fi



增加后截图如下:

这里写图片描述

4、生成Makefile
 

安装nginx跟rtmp模块(未指定依赖包的路径,使用系统默认路径)

./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module --with-http_ssl_module

make & make install(指定依赖包的路径)

./configure --add-module=../nginx_mod_h264_streaming-2.2.7 --with-http_ssl_module --with-pcre=/root/zhang/nginx/pcre-7.9 --with-zlib=/root/zhang/nginx/zlib-1.2.3--user=www --group=www --prefix=/usr/local/nginx --with-http_flv_module --with-http_stub_status_module

make && make install

注意:

4.1、依赖包的路径,最好是加进去,不过不加也可以

4.2、第2种方案:先编译安装nginx-rtmp-module-1.2.0 ,然后后期再编译nginx_mod_h264_streaming-2.2.7 ,然后删除安装目录中的nginx文件,将/home/nginxdir/nginx-1.12.1/objs下的编译好的nginx文件,复制到安装目录/usr/local/nginx/sbin
4.3、编译时如果报weberror的错误,将/home/nginxdir/nginx-1.12.1/objs/Makefile 中的-weberror删除掉,重新编译,其余的错误,就是那里报错,注释哪里

4.4.修改配置文件。进入 /usr/local/nginx/conf 文件夹。增添rtmp部分

rtmp {
    server {
        listen 1935;  #监听的端口 
        chunk_size 4000;
        application live {  #rtmp推流请求路径 
            live on;

recorder rec1 {
                record all manual;
                record_unique on;
                record_notify on;
                record_max_size 512M;
                #record_interval 0s;
                 record_path /usr/local/nginx/html/flv_file;
                 record_suffix .flv;
               # exec_record_done /usr/local/nginx/shell/upload2oss.sh $path $filename $basename;
                }

        }
    }
}

http  server块中添加如下部分:

root /usr/local/nginx/html/flv_file/;

#limit_rate_after 5m; ####在flv视频文件下载了5M以后开始限速
#limit_rate 512k; ####速度限制为512K

index index.html;

charset utf-8;

location ~ \.flv {

flv;

}

location ~ \.mp4$ {
mp4;
}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}







        location / {
            root   html;
            index  index.html index.htm;
        }

location /control {
                rtmp_control all;
        }


5、进入 /usr/local/nginx/sbin文件夹,执行./nginx启动nginx

参考网址:

centos7 搭建Nginx+rtmp流媒体服务器

CentOS7升级OpenSSL版本

 

搭建nginx rtmp流媒体服务器(超详细)

nginx搭建mp4、flv流媒体服务器

 RTMP 流媒体服务器视频直播录制并上传至OSS实现

举报

相关推荐

0 条评论