首页 > 其他分享 >RTMP流媒体服务器LntonMedia(免费版)视频流媒体平台成功清理录像计划的具体操作步骤

RTMP流媒体服务器LntonMedia(免费版)视频流媒体平台成功清理录像计划的具体操作步骤

时间:2023-08-08 18:37:59浏览次数:45  
标签:删除 recordPath 视频流 efile 免费版 录像 文件夹 streamID 操作步骤

LntonMedia是支持接入RTMP推流摄像头的视频流媒体平台,新版LntonMedia互联网直播点播平台支持创建录像计划,用户可以设定周一至周日中,某天某个时间段内开启录像,其他时间不录像。

RTMP流媒体服务器LntonMedia(免费版)视频流媒体平台成功清理录像计划的具体操作步骤_删除操作

LntonMedia包含一个根据录像计划清理录像的功能,是我们在添加录像计划后同步添加的功能,功能实现代码大家可以参考以下:

for _, streamID := range deviceList {
   // 遍历所有录像设备
   live := &dao.TLive{}
   db.First(live, consts.SqlWhereID, streamID)
   log.Println("直播id:", streamID)
   vlive := &dao.TVlive{}
   db.First(vlive, consts.SqlWhereID, streamID)
 
   //如果是负数表示永久保存
   //对应设备id的目录
   recordPath := filepath.Join(recordRoot, streamID)
   // days 已排序
   days := efile.GetDirNames(recordPath)
   today := time.Now().Format("20060102")
 
   for i := 0; i < len(days); i++ {
      dayDir := days[i]
      dayPath := filepath.Join(recordPath, dayDir)
      // 已经升序排序的秒文件夹
      secondDirs := efile.GetDirNamesAsc(dayPath)
      secondDirsLen := len(secondDirs)
 
      for ii := 0; ii < secondDirsLen; ii++ {
         secondDirPath := filepath.Join(dayPath, secondDirs[ii])
         importantPath := filepath.Join(secondDirPath, "important")
         // 1. 如果存在 import 文件夹, 不删除文件
         if efile.Exisit(importantPath) {
            continue
         }
 
         // 2. 如果是今天的录像,正在直播,并且是最后一个秒文件夹, 说明是直播的 ts 保留位置,保留配置文件中保留的直播个数 ts 文件
         // 暂时不删除,直接 continute,后面优化
         if today == dayDir && mediaserver.HasLive(streamID) && ii == secondDirsLen-1 {
            continue
         }
 
         secondTime := etime.StrYYYYMMDDHHmmssToTime(secondDirs[ii])
         week := int(secondTime.Weekday())
         // 防止误删,默认可以保存录像
         canRecord := true
 
         recordM3u8 := filepath.Join(secondDirPath, fmt.Sprintf("%s_record.m3u8", streamID))
         if efile.Exisit(recordM3u8) {
            // hV6wpxVnR-20211011220748-436.ts
            tsName := efile.GetLastTsName(filepath.Join(secondDirPath, fmt.Sprintf("%s_record.m3u8", streamID)))
 
            tsTimeStrs := strings.Split(tsName, "-")
            if len(tsTimeStrs) == 3 {
               tsRecordTime, _ := strconv.Atoi(tsTimeStrs[1][8:])
               canRecord = CanRecordByPlan(live, week, tsRecordTime)
            }
         }
 
         if !canRecord {
            log.Println("remove record time path : ", secondDirPath)
            err := os.RemoveAll(secondDirPath)
            if err != nil {
               log.Println("删除文件夹 ", secondDirPath, " 失败, error = ", err.Error())
               return
            }
         }
      }
 
      secondDirs = efile.GetDirNamesAsc(dayPath)
      // 如果所有的子文件夹为空,可以删除天文件夹
      if len(secondDirs) == 0 {
         efile.RemoveAll(dayPath)
      }
   }
 
   //如果设备下所有录像都删除了该设备目录也同时删除
   allDays := efile.GetDirNames(recordPath)
   if len(allDays) == 0 {
      //如果不是软连接才删除
      if !efile.IsLinkWithPath(recordPath) {
         err := os.RemoveAll(recordPath)
         log.Println("remove record path : ", recordPath)
         if err != nil {
            log.Println("删除文件夹 ", recordPath, " 失败, error = ", err.Error())
            return
         }
      }
      //删除录像记录
      db.Delete(&do.TRecord{}, consts.SqlWhereID, streamID)
   }
}

以上代码主要遍历文件夹进行删除操作,其中有几个逻辑如下:

1.如果有 import 文件夹,用户认为是重要视频,则不删除该文件夹

2.如果是正在直播的文件夹,则不删除

3.如果是可以删除的文件夹,则读取 m3u8 文件的最后一个 ts 文件的时间。如果是在需要保留的时间节点内,则不删除,其余情况下进行删除操作。

RTMP流媒体服务器LntonMedia(免费版)视频流媒体平台成功清理录像计划的具体操作步骤_删除操作_02

RTMP流媒体服务器LntonMedia(免费版)视频流媒体平台成功清理录像计划的具体操作步骤_删除文件夹_03

标签:删除,recordPath,视频流,efile,免费版,录像,文件夹,streamID,操作步骤
From: https://blog.51cto.com/LNTON/7010982

相关文章

  • 安防监控视频汇聚平台EasyCVR分发的FLV视频流在VLC中无法播放是什么原因?
    众所周知,TSINGSEE青犀视频汇聚平台EasyCVR可支持多协议方式接入,包括主流标准协议国标GB28181、RTSP/Onvif、RTMP等,以及厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。在视频流的处理与分发上,视频监控汇聚平台EasyCVR的性能也同样表现得很优秀,平台可对外分发多格式的视......
  • RTSP/Onvif视频服务器LntonNVR(源码版)视频平台获取录像接口返回精确的录像文件的具体操
    LntonNVR视频平台可实现RTSP/Onvif协议接入设备、实时直播、录像、检索与回放、存储、视频分发等视频能力。在录像功能上,LntonNVR支持7*24小时不间断录像,也可以设定录像计划,对指定时间进行录像,并且支持录像的检索与回放、支持本地录像回放。有用户需要获取LntonNVR平台录像视频指定......
  • WebRTC 显示RTSP视频流
    网页显示视频的两种方式: 1.使用Vlc插件,浏览器限制火狐50,51 版本。文件见上传。<objecttype="application/x-vlc-plugin"id="vlc3"events="True"style="width:300px;height:300px;"><paramname="mrl"id="mr10......
  • RTMP流媒体服务器LntonMedia(免费)视频直播点播平台的点播文件分享链接设置自动播放的具
    LntonMedia视频直播/点播服务平台诞生至今,我们做了不少版本的功能更新和升级。之前我们为大家解决了LntonMedia中iframe地址自动播放的问题,除了iframe地址外,还可以通过分享链接进行视频分享。部分用户称LntonMedia的点播文件通过分享链接分享时,无法自动播放,需要手动点击才可以播放,......
  • TSINGSEE青犀视频安防监控视频平台加密机的详细使用与操作步骤
    我们在此前的文章中介绍过不少TSINGSEE青犀视频安防监控视频平台关于加密机授权操作及相关疑问解答,感兴趣的用户可以翻阅往期的文章进行了解。由于新用户咨询该方面的问题较多,今天我们再来介绍一下操作步骤。注意:加密机是依据IP授权,因此授权的前提是加密机的网络与要授权的视频监控......
  • 国标GB28181视频平台LntonGBS(源码版)国标视频平台隐藏平台web页面不被访问的操作步骤
    LntonGBS国标视频云服务通过支持国标GB28181协议,实现了设备接入、实时监控直播、录像、语音对讲、云存储、告警、级联等功能。同时,它还支持将接入的视频流以多种格式(包括RTSP、RTMP、FLV、HLS、WebRTC)进行全终端、全平台分发,实现了无插件播放在Web浏览器、手机浏览器、微信端、PC客......
  • RTSP流媒体服务器LntonNVR(源码版)视频平台接入硬盘录像机的具体操作步骤
    LntonNVR是基于RTSP/Onvif协议接入的视频平台,可支持将前端设备的音视频进行采集、传输、处理并分发,实现视频监控直播、云端录像、云存储、检索回看、国标级联、告警等视频能力。平台兼容性高、可拓展性强、性能稳定,可应用在智慧工地、智慧园区、智慧工厂、智慧校园等场景中。对于新......
  • RTSP流媒体服务器LntonNVR(源码版)平台硬件更改设备的DNS的具体操作步骤
    LntonNVR作为视频边缘计算网关,提供了软件平台版和硬件设备版两种选择。硬件版本的LntonNVR具有体积小、方便部署等特点,配置完成后可以直接放置在现场,只需通电并连接网络即可使用。因此,很多项目中用户都会选择部署LntonNVR来满足其需求。当用户在配置完固定IP后遇到无法访问域名地址......
  • 当没有STLINK的时候,用串口进行下载程序到stm32里操作步骤:
    https://www.bilibili.com/video/BV1th411z7sn?p=30&vd_source=791674f04f7270b40ba9c9d5a7e3281e前5min0、连接电路:1、打开软件:FlyMcu2、keil5导出.hex文件重新编译就出来了hex文件3、FlyMcu配置波特率等参数4、stm32跳冒切换+复位5、烧录6、stm32跳冒切换+复位......
  • Adobe Dreamweaver 2022官方版_最新免费版下载安装 官方版特色
    AdobeDreamweaver2021亮点1.快速.灵活的编码借助简化的智能编码引擎,轻松创建.编码和管理动态网站。访问代码提示,用于快速理解和编辑HTML.CSS和其他Web标准。利用视觉辅助功能减少错误,提高网站开发速度。2.通过较少的步骤轻松设置网站使用起始模板更快地启动和运行您的网站,您可以通......