一、安装Nginx

1、下载Nginx

cd /usr/local/src
wget http://nginx.org/download/nginx-1.13.6.tar.gz

2、解压

tar -zxvf nginx-1.13.6.tar.gz

3、安装编译需要的工具

yum -y install gcc gcc-c++ openssl openssl-devel zlib zlib-devel pcre pcre-devel

4、编译Nginx

cd nginx-1.13.6

# 编译
./configure --prefix=/usr/local/nginx \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_sub_module \
--with-http_gzip_static_module

5、安装

make && make install
二、安装Nginx RTMP模块 

1、下载

cd /usr/local/src
wget https://github.com/arut/nginx-rtmp-module/archive/refs/tags/v1.2.2.tar.gz

2、解压

tar -zxvf v1.2.2.tar.gz

3、编译

cd nginx-1.13.6

# 编译
./configure --add-module=/usr/local/src/nginx-rtmp-module-1.2.2 \
--with-http_ssl_module

4、安装

make && make install
三、配置

1、Nginx配置RTMP和HLS

vim /usr/local/nginx/conf/nginx.conf


# 修改如下

rtmp_auto_push on;
rtmp {
    server {
        listen 1935;        # 监听端口 1935,用于 RTMP 数据流传输
        chunk_size 4000;    # 数据传输分块大小
 
        application live {
            live on;            # 开启 RTMP 直播功能
            hls on;             # 开启 HLS 功能
            hls_fragment 2s;    # 每个 HLS 分片的时长为 2 秒。
            hls_playlist_length 6s;                # HLS 播放列表长度为 6 秒
            hls_path /usr/local/nginx/html/hls;    # HLS 分片文件存储路径
 
        }
    }
}
 
worker_processes  1;
events {
    worker_connections  1024;
}
 
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
 
    server {
        listen       80;
        server_name  localhost;
 
        location / {
            root   html;
            index  index.html index.htm;
        }
		
		location /stat {
            rtmp_stat all;
            # Use this stylesheet to view XML as web page
            # in browser
            rtmp_stat_stylesheet stat.xsl;
        }

        location /stat.xsl {
            # XML stylesheet to view RTMP stats.
            # Copy stat.xsl wherever you want
            # and put the full directory path here
            root /usr/local/src/nginx-rtmp-module-1.2.2;
        }
 
        location /hls {
            # Serve HLS fragments
            types {
                application/vnd.apple.mpegurl m3u8;
                video/mp2t ts;
            }
            root /usr/local/nginx/html;
            add_header Cache-Control no-cache;
        }
   }
}

2、为Nginx配置启动

vim /lib/systemd/system/nginx.service

# 查看
[Unit]
Description=nginx 
After=network.target 
   
[Service] 
Type=forking 
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx reload
ExecStop=/usr/local/nginx/sbin/nginx quit
PrivateTmp=true 
   
[Install] 
WantedBy=multi-user.target

3、启动Nginx

systemctl start nginx
四、直播演示

1、用OBS推流,打开设置,直播

服务器:rtmp://ip:1935/live(live目录是Nginx中定义好的)

推流码:demo(自定义)

CentOS 搭建RTMP直播服务器_nginx

2、在OBS中添加采集来源,点击开启直播

CentOS 搭建RTMP直播服务器_Nginx_02

3、客户端下载 VLC软件,拉流实现观看直播

下载地址:https://www.videolan.org/

打开虚拟机端 VLC 客户端,媒体 > 打开网络串流

CentOS 搭建RTMP直播服务器_服务器_03

(1)RTMP协议:rtmp://ip/live/demo

CentOS 搭建RTMP直播服务器_centos_04

(2)HLS协议:http://ip/hls/demo.m3u8 

CentOS 搭建RTMP直播服务器_centos_05

知识点:

  1. HLS可以在手机H5页面、微信公众号上播放,延迟10秒以上
  2. RTMP依赖Flash Player才能播放,延迟3秒左右

4、数据统计:ip://stat

CentOS 搭建RTMP直播服务器_centos_06