NGINX如何实现rtmp推流服务--视频缓存

2020-04-01 17:18:41 浏览数 (1)

今天我们讲解NGINX如何实现视频缓存的,不了解NGINX如何推流的可以先去看一下我上篇文章

NGINX如何实现rtmp推流服务--鉴权篇

NGINX的rtmp推流部分的配置如下

代码语言:javascript复制


rtmp {
    server {
        listen 1935;
        application live {
            live on;
      record all;
      record_unique on;
      record_path "C:/laragon/bin/nginx/nginx-rtmp/video";
      record_suffix -%Y-%m-%d-%H_%M_%S.flv;
      #on_publish http://127.0.0.1:8686/auth;
      #on_play http://127.0.0.1:8686/auth;
        }
    
        application hls {
            live on;
            hls on;  
            hls_path "C:/laragon/bin/nginx/nginx-rtmp/hls/";
            hls_fragment 8s;  
        }
    }
}



这里主要分了两个部分讲解,一个是live推流,一个是hls的推流。

代码语言:javascript复制
        application live {
            live on;
      record all;
      record_unique on;
      record_path "C:/laragon/bin/nginx/nginx-rtmp/video";
      record_suffix -%Y-%m-%d-%H_%M_%S.flv;
      #on_publish http://127.0.0.1:8686/auth;
      #on_play http://127.0.0.1:8686/auth;
        }
代码语言:javascript复制

记录所有数据

代码语言:javascript复制
      record all;
代码语言:javascript复制
记录值唯一
代码语言:javascript复制
      record_unique on;
代码语言:javascript复制
视频缓存路径
代码语言:javascript复制
      record_path "C:/laragon/bin/nginx/nginx-rtmp/video";
代码语言:javascript复制
缓存文件后缀
代码语言:javascript复制
      record_suffix -%Y-%m-%d-%H_%M_%S.flv;
代码语言:javascript复制
利用obs推流,配置如下

点击开始推流,结果如下

代码语言:javascript复制

视频存放位置
代码语言:javascript复制
C:laragonbinnginxnginx-rtmpvideo
代码语言:javascript复制
视频缓存
代码语言:javascript复制
stream-1585622145-2020-03-31-10_35_45.flv
代码语言:javascript复制
hls配置
代码语言:javascript复制
 
代码语言:javascript复制
        application hls {
            live on;
            hls on;  
            hls_path "C:/laragon/bin/nginx/nginx-rtmp/hls/";
            hls_fragment 8s;  
        }

视频保存路径

代码语言:javascript复制
            hls_path "C:/laragon/bin/nginx/nginx-rtmp/hls/";

每一段视频的大小,也就是时长,这里保存了8秒

代码语言:javascript复制
            hls_fragment 8s;

obs配置如下

结果如下

hls的推流会产生一个m3u8的索引,保存ts文件的索引,同时保存一个个视频片段。后端根据文件的缓存地址,可以拿到再次播放。

0 人点赞