摘要:Nginx rtmp 模块配合 OBS 推流实现直播(监控)功能

写的有点仓促,有问题的话可以随时留言~

客户端环境:
系统:WIN 10
推流软件:OBS Studio
PC测试浏览器:Chrome
Android测试浏览器:QQ内置

服务器环境:
系统:Centos 7
代理:Nginxhttp+rtmp )
浏览器播放器:ckplayer

1. 安装 Nginx

具体过程参考Centos 7 下配置 Nginx...

2. 安装编译 rtmp 模块

# 下载 rtmp 模块压缩包(最好和 Nginx 的安装包在同一目录下)
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
# 解压
unzip nginx-rtmp-module-master.zip
# 得到 nginx-rtmp-module-master
# 进入 Nginx 安装包文件夹
cd nginx-1.12.2
# 编译安装 rtmp
./configure --add-module=/root/nginx-rtmp-module && make && make install
# 注意将 /root/nginx-rtmp-module 替换成你 rtmp 包所在的位置
![图1](http://www.blanc.site/wp-content/uploads/2018/05/2018051404444718.png)

3. 配置 Nginxrtmphttp 模块

  • Nginx 配置目录(一般为:usr/local/nginx/conf )下编辑 live_rtmp.conf 文件如下
#user  nobody;
worker_processes  1;

error_log  logs/error.log;
error_log  logs/error.log  notice;
error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

rtmp {

    server {
        listen 1935;
        chunk_size 4000;
        application mylive {
            live on;
            record all;
            record_path /home/live_record;
            record_max_size 200M;
            hls on;
            # 注意此地址设置,hls_path 代表 hls 目录及.m3u8文件的保存目录
            hls_path /var/www/html/hls;
            hls_fragment 1s;
            hls_playlist_length 5;
            allow play all;
        }
    }
}

http {
    server {
        listen       8080;
        location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }

        location /stat.xsl {
            # Copy stat.xsl wherever you want
            # and put the full directory path here
            root /usr/local/nginx/html/;
        }

        location /hls {
            # Serve HLS fragments
            types {
                application/vnd.apple.mpegurl m3u8;
                video/mp2t ts;
            }
            root /var/www/html/hls;
            add_header Cache-Control no-cache;
        }
        # http 根目录
        location / {
            root /var/www/html;
        }
   }
}
  • 验证配置文件正确性:
/usr/local/nginx/sbin/nginx -t  -c /usr/local/nginx/conf/live_rtmp.conf
  • 配置文件说明: 
  1. hls 开启后产生的 m3u8 文件会存在 hls_path 下,播放端调用 404 的时候先去看看 m3u8 有没有生成。 
  2. stat.xsl 要从 nginx-rtmp 的源代码根目录中考出来,考到配置的那个文件夹。

4. 启动 Nginx

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/live_rtmp.conf
  • 推流地址: rtmp://服务器ip/mylive/xxxxx 
  • 播放地址: rtmp://服务器ip/mylive/xxxxx 
  • hls地址: http://服务器ip:8080/hls/xxxxx.m3u8 
  • 状态查看地址: http://服务器ip:8080/stat
  • xxxx代表你在 OBS 设置的流名称

5. 客户端下载并配置 OBS

下载地址:OBS官网

<span class='yzk_title_2117'>Nginx rtmp 模块配合 OBS 推流实现直播(监控)功能</span>-一只小白

6. 下载配置 ckplayer rtmp 浏览器播放器

下载地址:clpalyer官网

下载后找到最里层的 ckplayer 文件夹通过 FTP 上传到服务器(或直接 wget 下载) http 根目录下

<span class='yzk_title_2117'>Nginx rtmp 模块配合 OBS 推流实现直播(监控)功能</span>-一只小白

按照官网示例编辑一个 index.html 文件放在刚刚上传的 ckplayer 目录下。

<span class='yzk_title_2117'>Nginx rtmp 模块配合 OBS 推流实现直播(监控)功能</span>-一只小白

7. 开启 OBS 推流访问网页查看直播(监控)

  • 访问 http://服务器ip:8080/ckplayer/index.html
  • 即可查看推流情况(贴图看疗效)
  • 理论上服务器带宽越高,推流的 FPS 越小你的直播越流畅
<span class='yzk_title_2117'>Nginx rtmp 模块配合 OBS 推流实现直播(监控)功能</span>-一只小白