完整版配置流媒体服务

nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息。

正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好。

ububtu平台编译环境可以使用以下指令

apt-get install build-essential

apt-get install libtool

centos平台编译环境使用如下指令

安装make:

yum -y install gcc automake autoconf libtool make

安装g++:

yum install gcc gcc-c++

下面正式开始
---------------------------------------------------------------------------
一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。

1.选定源码目录

可以是任何目录,本文选定的是/home/nginx

cd /home/nginx

2.安装PCRE库

https://ftp.pcre.org/pub/pcre/ 下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:

wget https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz

tar -zxvf pcre-8.44.tar.gz

cd pcre-8.44

./configure

make

make install

3.安装zlib库

http://zlib.net/zlib-1.2.11.tar.gz 下载最新的 zlib 源码包,使用下面命令下载编译和安装 zlib包:

wget http://zlib.net/zlib-1.2.11.tar.gz

tar -zxvf zlib-1.2.11.tar.gz

cd zlib-1.2.11

./configure

make

make install

4.安装ssl(某些vps默认没装ssl)

wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz

tar -zxvf openssl-1.1.1g.tar.gz

5解压nginx-http-flv-module-master压缩包

6.安装nginx

Nginx 一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中一个

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

tar -zxvf nginx-1.18.0.tar.gz

cd nginx-1.18.0

./configure --prefix=/home/nginx/nginx --with-openssl=/home/nginx/openssl-1.1.1g --with-pcre=/home/nginx/pcre-8.44 --with-zlib=/home/nginx/zlib-1.2.11 --add-module=/home/nginx/nginx-http-flv-module-master --with-http_ssl_module

 

make

make install

编译完之后进入nginx

cd /ngnx/conf

vim nginx.conf

编辑为如下内容:

worker_processes  1; 
 
error_log logs/error.log error;
 
events {
    worker_connections  4096;
}
 
http {
    include       mime.types;
    default_type  application/octet-stream;
 
    keepalive_timeout  65;
 
    server {
        listen       80;
 
        location / {
            root   /var/www;
            index  index.html index.htm;
        }
 
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
 
        location /live {
            flv_live on; #打开 HTTP 播放 FLV 直播流功能
            chunked_transfer_encoding on; #支持 'Transfer-Encoding: chunked' 方式回复
 
            add_header 'Access-Control-Allow-Origin' '*'; #添加额外的 HTTP 头
            add_header 'Access-Control-Allow-Credentials' 'true'; #添加额外的 HTTP 头
        }
 
        location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }
 
        location /stat.xsl {
            root /home/nginx/nginx-http-flv-module-master; #指定 stat.xsl 的位置
        }
 
        location /control {
            rtmp_control all; #rtmp 控制模块的配置
        }
    }
}
 
rtmp_auto_push on;
rtmp_auto_push_reconnect 1s;
rtmp_socket_dir /tmp;
 
rtmp {
    out_queue           4096;
    out_cork            8;
    max_streams         128;
    timeout             15s;
    drop_idle_publisher 15s;
 
    log_interval 5s; #log 模块在 access.log 中记录日志的间隔时间,对调试非常有用
    log_size     1m; #log 模块用来记录日志的缓冲区大小
 
    server {
        listen 1935;
 
        application live{
            live on;
            gop_cache on; #打开 GOP 缓存,减少首屏等待时间
        }
    }
}

配置完成

登录推流盒子:

将推流地址改为rtmp://ip:1935/live/文件名

取流地址为:http://ip/live?port=1935&app=live&stream=文件名


版权声明:本文为qq_43437044原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。