本文转自Marvin的博客:

http://blog.csdn.net/marvin1311/article/details/78660592

EasyDSS_Solution直播录像清理

直播录像,可以根据配置将过期的录像清理,支持如下条件:

  1. 设定自动删除录像的时间,单位(天);
  2. 每次启动服务后,一分钟后如果开启清理都会检查清理;
  3. 默认设定每天凌晨3点执行检查清理任务;
  4. 更新参数设定时,都会会在一分钟内判断执行一次检查清理;
  5. 默认是关闭直播录像清理;

    这样可以解决几种场景

    (1)凌晨执行,降低资源消耗;

    (2)改变参数时检查,可以根据最新参数清理无效录像文件,及时减少空间;

    (3)启动服务自动检测,及时减少空间;

下面会讲下操作设定,及相关的一些编码实现;

1. 参数设定

默认参数是0,默认关闭录像清理

2.相关编码

2.1.定时任务

 setInterval(function() {
//每分钟执行一次,判读是否到凌晨3点
if (currentLiveRecordDays != parseInt(global.live_record_days)) {
//第一次启动后一分钟执行
currentLiveRecordDays = parseInt(global.live_record_days);
if (currentLiveRecordDays != 0) {
removeRecordFile();
}
} else {
if (currentLiveRecordDays != 0) {
//判读是否达到时间
if (!isStartRecordRemove && parseInt(util.dateFormat(new Date(), "hh")) == 3) {
isStartRecordRemove = true;
removeRecordFile();
}
if (isStartRecordRemove && parseInt(util.dateFormat(new Date(), "hh")) != 3) {
isStartRecordRemove = false;
}
}
}
}, 60000);

2.2.比较日期,判断是否过期

function isOverdue(yyyyMMdd) {
var days = currentLiveRecordDays;
var tNow = new Date().getTime();
var yyyy = parseInt(yyyyMMdd.substring(0, 4));
var mm = parseInt(yyyyMMdd.substring(4, 6)) - 1;
var dd = parseInt(yyyyMMdd.substring(6));
var tFile = new Date(yyyy, mm, dd).getTime();
var t = tNow - tFile;
return t >= days * 3600 * 24 * 1000;
}

2.3.删除录像文件方法

遍历删除文件夹里所有子文件

var deleteFolder = function(path) {
var files = [];
if (fs.existsSync(path)) {
files = fs.readdirSync(path);
files.forEach(function(file, index) {
var curPath = path + "/" + file;
if (fs.statSync(curPath).isDirectory()) {
deleteFolder(curPath);
} else {
fs.unlinkSync(curPath);
}
});
fs.rmdirSync(path);
}
};

感谢你的阅读,更多内容会不断分享~

获取更多信息

QQ交流群:560148162

WEB:www.easydss.com

Copyright © EasyDSS.com 2012-2017

EasyDSS RTMP流媒体解决方案之直播录像自动清理方案的更多相关文章

  1. EasyDSS RTMP流媒体解决方案之Windows服务安装方案

    Windows服务安装 EasyDSS_Solution流媒体解决方案,可以通过start一键启动.在实际应用中,我们希望可以设置成系统服务,那么下面我将会介绍,如何在windows中将流媒体解决方案 ...

  2. RTSP安防摄像机(海康大华宇视等)如何推送到RTMP流媒体服务器进行直播

    方案介绍 目前互联网直播的CDN和标准RTMP流媒体服务器通常只能接收RTMP格式的音视频推流.目前市场上有一些自带RTMP推流的摄像机和编码器,可以直接在其rtmp推流配置里面配置推送到RTMP流媒 ...

  3. EasyDSS RTMP流媒体服务器基于RTMP拉模式和转推模式搭建公网全平台全终端直播集群的方案

    近期,我们有一位EasyDSS流媒体用户在需求中提出:如何搭建一个用户量巨大的讲座直播,提供给普通用户免费观看,每天上午和下午分别有几场讲座同时直播,持续几天时间. 推荐方案 ★ 由于甲方是中国移动运 ...

  4. EasyDSS RTMP流媒体服务器web前端:vue组件之间的传值,父组件向子组件传值

    之前接触最多的都是EasyNVR,主要针对的都是前端的一些问题.也有接触到一些easydss流媒体服务器. 前端方面的,EasyDSS流媒体服务器与EasyNVR有着根本的不同.EasyNVR使用的是 ...

  5. EasyDSS RTMP流媒体服务器是怎样炼成的:Easy而且更加互联网!

    开发EasyDSS的初衷 自从12年开始做EasyDarwin的时候,当时眼光一直都仅仅局限在安防监控视频这一块,对RTMP没有太大的重视,对于后起之秀HLS更是没有太多关注,然而经历了15直播火热的 ...

  6. 编译EasyDSS rtmp流媒体服务器遇到stray '_239' inprogram,stray '_187' inprogram,stray '_191' inprogram的解决办法

    使用用户提供的交叉编译工具链编译easydss时遇到一个编译错误 stray '\239' inprogram stray '\187' inprogram stray '\191' inprogra ...

  7. EasyDSS RTMP流媒体服务器的HTTP接口query url的C++实现方法

    EasyDSS支持HTTP GET接口访问,我们需要获取url的各种参数信息 比如http://ip:port/action?a=1&b=2&c=3 我们需要知道对应的a.b.c的值 ...

  8. EasyDSS RTMP流媒体服务器videojs flash播放RTMP/HLS提示错误的解决方案

    本文转自EasyDSS团队成员StarIT的博客:http://blog.csdn.net/staritstarit/article/details/73692715 问题 在博客<EasyDS ...

  9. EasyDSS RTMP流媒体服务器中调用videojs播放rtmp视频显示在左上角问题

    本文转自EasyDarwin团队成员Penggy的博客:http://www.jianshu.com/p/f63f5b7c691b 问题描述: 近期我开发了一款新一代的RTMP/HLS流媒体服务器软件 ...

随机推荐

  1. 爬虫学习笔记(六)PyQuery模块

    PyQuery模块也是一个解析html的一个模块,它和Beautiful Soup用起来差不多,它是jquery实现的,和jquery语法差不多,会用jquery的人用起来就比较方便了. Pyquer ...

  2. Codeforces Gym101063 C.Sleep Buddies (2016 USP-ICMC)

    C.Sleep Buddies It is nighttime in the Earth Colony on Mars and everyone is getting ready to sleep. ...

  3. Codeforces Gym100735 I.Yet another A + B-Java大数 (KTU Programming Camp (Day 1) Lithuania, Birˇstonas, August 19, 2015)

    I.Yet another A + B You are given three numbers. Is there a way to replace variables A, B and C with ...

  4. POJ2546 Circular Area(计算几何)

                                                                                Circular Area            ...

  5. 机器学习(4):数据分析的工具-pandas的使用

    前面几节说一些沉闷的概念,你若看了估计已经心生厌倦,我也是.所以,找到了一个理由来说一个有兴趣的话题,就是数据分析.是什么理由呢?就是,机器学习的处理过程中,数据分析是经常出现的操作.就算机器对大量样 ...

  6. Maven项目管理工具初体验

    在最前面声明,本文不涉及任何原理,只是对使用方法和期间遇到的问题如何解决.主要是随着年纪原来越大,越觉得好记星不如烂笔头的深意,同时如果能够帮助谁,那就最好不过了. 前两天自己做一个项目,然后好心朋友 ...

  7. 基于WPF系统框架设计(1)-为什么要仿Office2010 Ribbon?

    为什么系统框架设计使用Ribbon导航模式? 这得从Office软件的演变说起.微软为什么最后选择使用Ribbon,也许就是很多系统设计要使用Ribbon做功能导航的原因. 你是否还记得曾经使用过的M ...

  8. ios内存管理笔记(一)

  9. 数据库访问的弹性化---WebLogic和Oracle RAC的整合:Active GridLink

        1.  什么是Active GridLink Data Source 从Oracle WebLogic Server 10.3.4版本开始引进了一种单数据源实现来支持Oracle RAC集群. ...

  10. MyEclipse Html自动提示功能的设置方法

    操作方法: windows------preferences----------搜索 html----------找到 html Source这项--------- 右边视图,找到 content a ...