今天我们讲解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文件的索引,同时保存一个个视频片段。后端根据文件的缓存地址,可以拿到再次播放。