专栏首页大话swiftNGINX如何实现rtmp推流服务--视频缓存

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

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

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

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


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的推流。

        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;
        }

记录所有数据

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

点击开始推流,结果如下

视频存放位置
C:\laragon\bin\nginx\nginx-rtmp\video
视频缓存
stream-1585622145-2020-03-31-10_35_45.flv
hls配置
 
        application hls {
            live on;
            hls on;  
            hls_path "C:/laragon/bin/nginx/nginx-rtmp/hls/";
            hls_fragment 8s;  
        }

视频保存路径

            hls_path "C:/laragon/bin/nginx/nginx-rtmp/hls/";

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

            hls_fragment 8s;

obs配置如下

结果如下

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

本文分享自微信公众号 - 大话swift(gh_ca2266b7cab0),作者:寒云

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 用gorm谈谈mysql中的事务操作

    下面我们以gorm为例讲解一下,为什么,同时让大家熟悉一下gorm的是如何开启事务的。

    大话swift
  • NGINX如何实现rtmp推流服务--鉴权篇

    最近直播大火,直播推流软件遍地开花,那么用NGINX如何进行推流呢?下面我们就简单的介绍一下用NGINX的rtmp模块如何实现视频推流,我们主要从一下几点介绍:

    大话swift
  • gorm之Many To Many(多对多

    我们在开发过程中经常面对多对多的情况,那么我们应该怎么做呢?在实际工作中,权限和角色符合一对多的情况,下面我就一简单的RBAC做个简单示例。 权限表

    大话swift
  • 【CodeForces 621B】Wet Shark and Bishops

    1000*1000的格子里,给你n≤200 000个点的坐标,求有多少对在一个对角线上。

    饶文津
  • 图像分割最新资料汇总(语义分割、实例分割、视频分割、医疗图像分割、自动驾驶…)

    图像分割(image segmentation)是计算机视觉领域最为经典的研究问题之一,至今仍受到学术界和工业界的高度重视。所谓图像分割指的是根据灰度、颜色、纹...

    马上科普尚尚
  • 文件删除小助手

    亲,还在为删除多个文件而发愁吗?还在为删除不同目录下的N多文件而发愁吗?那你就下载这个吧。 功能以及优点:   1.支持删除某一类文件。   2.支持某一路径下...

    Java中文社群_老王
  • Webpack 4 如何优雅打包缓存文件

    一般来说,对于静态资源,我们都希望浏览器能够进行缓存,那样以后进入页面就可以直接使用缓存资源,页面直接直逼火箭速度打开,既提高了用户的体验也节省了宽带资源。

    IMWeb前端团队
  • HashSet集合

    hashSet集合是把存储进来的对象先计算出对象的hash值后才进行对应的存储,因为存储进来的对象都有一个hash值,所以在进行查询的时候不需要像其他集合一样,...

    端碗吹水
  • C语言 | 每日基础(45)

    阿一:在 C 语言中字符用它们的字符集值对应的小整数表示。因此, 你不需要任何 转换函数: 如有你有字符, 你就有它的值。数字字符和它们对应的 0-9 的数字之...

    闫小林
  • 一个退休程序员,用高中几何方法,让百年数学难题逼近理论极限

    这个问题在数学上叫做:万有覆盖问题(universal covering problem)。

    量子位

扫码关注云+社区

领取腾讯云代金券