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

简介: 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 包所在的位置

3. 配置 Nginx 的 rtmp 和 http 模块

  • 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官网

图片2

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

下载地址:clpalyer官网

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

图片3

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

图片4

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

  • 访问 http://服务器ip:8080/ckplayer/index.html
  • 即可查看推流情况(贴图看疗效)
  • 理论上服务器带宽越高,推流的 FPS 越小你的直播越流畅

图片5

目录
相关文章
|
2月前
|
网络协议 应用服务中间件 nginx
FFmpeg错误笔记(一):nginx-rtmp-module推流出现 Server error: Already publishing
这篇文章讨论了在使用nginx-rtmp-module进行RTMP推流时遇到的“Server error: Already publishing”错误,分析了错误原因,并提供了详细的解决办法,包括修改nginx配置文件和终止异常的TCP连接。
209 0
FFmpeg错误笔记(一):nginx-rtmp-module推流出现 Server error: Already publishing
|
2月前
|
负载均衡 安全 应用服务中间件
nginx的强大功能和如何使用?
nginx的强大功能和如何使用?
150 2
|
3月前
|
应用服务中间件 nginx
一文搞定Nginx配置RTMP!
一文搞定Nginx配置RTMP!
183 3
|
4月前
|
运维 算法 应用服务中间件
运维系列.Nginx中使用HTTP压缩功能(一)
运维系列.Nginx中使用HTTP压缩功能(一)
89 1
|
4月前
|
缓存 负载均衡 安全
介绍一下Nginx的反向代理功能吧
【8月更文挑战第22天】介绍一下Nginx的反向代理功能吧
92 0
|
4月前
|
缓存 安全 应用服务中间件
Nginx的反向代理功能有哪些应用场景呢
【8月更文挑战第22天】Nginx的反向代理功能有哪些应用场景呢
230 0
|
4月前
|
缓存 负载均衡 监控
Nginx的反向代理功能如何实现的呢
【8月更文挑战第22天】Nginx的反向代理功能如何实现的呢
59 0
|
4月前
|
缓存 应用服务中间件 nginx
运维系列.Nginx中使用HTTP压缩功能(二)
运维系列.Nginx中使用HTTP压缩功能(二)
60 0
|
Web App开发 算法 测试技术
|
1月前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
86 7