Coder Social home page Coder Social logo

Comments (24)

xiongguangjie avatar xiongguangjie commented on June 20, 2024

path的文件还存在???

from zlmediakit.

bigff-0527 avatar bigff-0527 commented on June 20, 2024

path的文件还存在???

是的,我刚才随便找了个看,录像文件是在的,两个晚上,云端录像wvp上大概1.6w条(之前一个晚上wvp云端录像数据表是8k多条),我目前是修改了wvp删除云端录像定时器源码,是30分钟查询一次数据库,有数据就执行zlm删除录像文件的api(跟源码逻辑一样,不过我修改了获取录像数据的方式),目前wvp数据库是删除干净的。我没注意去看定时器平均执行一次删除多少个,我目前有几个十几个几十个云端录像时定时器删除是没问题的。会不会是数据太多导致zlm没删除完?

from zlmediakit.

xiongguangjie avatar xiongguangjie commented on June 20, 2024

path的文件还存在???

是的,我刚才随便找了个看,录像文件是在的,两个晚上,云端录像wvp上大概1.6w条(之前一个晚上wvp云端录像数据表是8k多条),我目前是修改了wvp删除云端录像定时器源码,是30分钟查询一次数据库,有数据就执行zlm删除录像文件的api(跟源码逻辑一样,不过我修改了获取录像数据的方式),目前wvp数据库是删除干净的。我没注意去看定时器平均执行一次删除多少个,我目前有几个十几个几十个云端录像时定时器删除是没问题的。会不会是数据太多导致zlm没删除完?

这个不应该,是不是文件被占用了(还在被其他程序占用),没被删除成功

from zlmediakit.

bigff-0527 avatar bigff-0527 commented on June 20, 2024

path的文件还存在???

是的,我刚才随便找了个看,录像文件是在的,两个晚上,云端录像wvp上大概1.6w条(之前一个晚上wvp云端录像数据表是8k多条),我目前是修改了wvp删除云端录像定时器源码,是30分钟查询一次数据库,有数据就执行zlm删除录像文件的api(跟源码逻辑一样,不过我修改了获取录像数据的方式),目前wvp数据库是删除干净的。我没注意去看定时器平均执行一次删除多少个,我目前有几个十几个几十个云端录像时定时器删除是没问题的。会不会是数据太多导致zlm没删除完?

这个不应该,是不是文件被占用了(还在被其他程序占用),没被删除成功

不应该吧,我现在一样能删除,不过是文件数量没当时那么多。如果没被删除成功 zlm也会返回code = 0吗?

from zlmediakit.

xiongguangjie avatar xiongguangjie commented on June 20, 2024

path的文件还存在???

是的,我刚才随便找了个看,录像文件是在的,两个晚上,云端录像wvp上大概1.6w条(之前一个晚上wvp云端录像数据表是8k多条),我目前是修改了wvp删除云端录像定时器源码,是30分钟查询一次数据库,有数据就执行zlm删除录像文件的api(跟源码逻辑一样,不过我修改了获取录像数据的方式),目前wvp数据库是删除干净的。我没注意去看定时器平均执行一次删除多少个,我目前有几个十几个几十个云端录像时定时器删除是没问题的。会不会是数据太多导致zlm没删除完?

这个不应该,是不是文件被占用了(还在被其他程序占用),没被删除成功

不应该吧,我现在一样能删除,不过是文件数量没当时那么多。如果没被删除成功 zlm也会返回code = 0吗?

我看看

from zlmediakit.

xiongguangjie avatar xiongguangjie commented on June 20, 2024

不会呀,返回0 就是删除成功了

from zlmediakit.

bigff-0527 avatar bigff-0527 commented on June 20, 2024

不会呀,返回0 就是删除成功了

那我也不清楚了QAQ,,我周六下班之后就没管了。今天上班一看服务器磁盘都要满了,发现wvp里的云端录像表是删除干净的,但是zlm的record目录下有将近20g的mp4。

from zlmediakit.

xiongguangjie avatar xiongguangjie commented on June 20, 2024

不会呀,返回0 就是删除成功了

那我也不清楚了QAQ,,我周六下班之后就没管了。今天上班一看服务器磁盘都要满了,发现wvp里的云端录像表是删除干净的,但是zlm的record目录下有将近20g的mp4。

看下dmesg与zlm的日志是不是有报错之类的

from zlmediakit.

bigff-0527 avatar bigff-0527 commented on June 20, 2024

不会呀,返回0 就是删除成功了

zlm生成云端录像时,是不是生成完整的mp4后才插入wvp云端录像表中?如果是的话,我这样删除也没问题呀。源码也是这个逻辑的

from zlmediakit.

xiongguangjie avatar xiongguangjie commented on June 20, 2024

不会呀,返回0 就是删除成功了

zlm生成云端录像时,是不是生成完整的mp4后才插入wvp云端录像表中?如果是的话,我这样删除也没问题呀。源码也是这个逻辑的

这个有webhook 去通知wvp

from zlmediakit.

bigff-0527 avatar bigff-0527 commented on June 20, 2024

不会呀,返回0 就是删除成功了

那我也不清楚了QAQ,,我周六下班之后就没管了。今天上班一看服务器磁盘都要满了,发现wvp里的云端录像表是删除干净的,但是zlm的record目录下有将近20g的mp4。

看下dmesg与zlm的日志是不是有报错之类的

zlm日志是没看到报错的,wvp也是根据zlm删除的接口code=0才输出日志的,最开始我是看wvp日志的,发现文件还是存在

from zlmediakit.

bigff-0527 avatar bigff-0527 commented on June 20, 2024

不会呀,返回0 就是删除成功了

zlm生成云端录像时,是不是生成完整的mp4后才插入wvp云端录像表中?如果是的话,我这样删除也没问题呀。源码也是这个逻辑的

这个有webhook 去通知wvp

image

from zlmediakit.

xia-chu avatar xia-chu commented on June 20, 2024

deleteRecordDirectory返回0 不一定代表删除成功了:
image

如果删除正在录制的流的文件夹,正在录制的文件不会被删除

from zlmediakit.

xia-chu avatar xia-chu commented on June 20, 2024

不过这个代码确实有问题 指定文件时(而非文件夹),如果这个流正在录制,确实会删除失败

from zlmediakit.

xiongguangjie avatar xiongguangjie commented on June 20, 2024

deleteRecordDirectory返回0 不一定代表删除成功了: image

如果删除正在录制的流的文件夹,正在录制的文件不会被删除
结果code为0 表示是调用delete_file 成功,而且看他的截图,他是直接删除文件的,不是删除目录与正在录制的文件

from zlmediakit.

bigff-0527 avatar bigff-0527 commented on June 20, 2024

deleteRecordDirectory返回0 不一定代表删除成功了: image

如果删除正在录制的流的文件夹,正在录制的文件不会被删除

大佬,zlm正在录制的mp4是不会通知wvp的吧,wvp云端录制表也不会插入新数据,我这边是先获取wvp云端表数据才调用删除的,应该不存在正在录制的mp4文件吧。还有一点 删除应该是删除指定的mp4文件,应该不是删除整个文件夹吧

from zlmediakit.

xia-chu avatar xia-chu commented on June 20, 2024

打个补丁吧:

Index: server/WebApi.cpp
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/server/WebApi.cpp b/server/WebApi.cpp
--- a/server/WebApi.cpp	(revision bbdbd6a3e0b73123202965e1899791ffec351572)
+++ b/server/WebApi.cpp	(date 1715569309155)
@@ -1590,12 +1590,14 @@
         auto record_path = Recorder::getRecordPath(Recorder::type_mp4, tuple, allArgs["customized_path"]);
         auto period = allArgs["period"];
         record_path = record_path + period + "/";
+
+        bool recording = false;
         auto name = allArgs["name"];
         if (!name.empty()) {
+            // 删除指定文件
             record_path += name;
-        }
-        bool recording = false;
-        {
+        } else {
+            // 删除文件夹,先判断该流是否正在录制中
             auto src = MediaSource::find(allArgs["vhost"], allArgs["app"], allArgs["stream"]);
             if (src && src->isRecording(Recorder::type_mp4)) {
                 recording = true;

测试没问题麻烦提个pr

from zlmediakit.

xia-chu avatar xia-chu commented on June 20, 2024

@xiongguangjie 要不你直接提代码吧 你方便点。

from zlmediakit.

bigff-0527 avatar bigff-0527 commented on June 20, 2024

辛苦了大佬们

from zlmediakit.

bigff-0527 avatar bigff-0527 commented on June 20, 2024

@xiongguangjie 要不你直接提代码吧 你方便点。

大佬能提问一下吗,就是能否实现实时预览不生成云端录像。而调用下载设备录像时才生成呢。或者简单来说就是 openRtpServer接口能否给个enable_mp4来控制当前流是否录制。

from zlmediakit.

xia-chu avatar xia-chu commented on June 20, 2024

@xiongguangjie 要不你直接提代码吧 你方便点。

大佬能提问一下吗,就是能否实现实时预览不生成云端录像。而调用下载设备录像时才生成呢。或者简单来说就是 openRtpServer接口能否给个enable_mp4来控制当前流是否录制。

on_publish hook不是开放这个能力给你了吗

from zlmediakit.

xiongguangjie avatar xiongguangjie commented on June 20, 2024

@xiongguangjie 要不你直接提代码吧 你方便点。

大佬能提问一下吗,就是能否实现实时预览不生成云端录像。而调用下载设备录像时才生成呢。或者简单来说就是 openRtpServer接口能否给个enable_mp4来控制当前流是否录制。

现在就是的,可以通过hook 可以控制是否录像(同时也可以通过接口控制算法录像),on_publish 的返回值,同时你没流怎么录像?????

from zlmediakit.

bigff-0527 avatar bigff-0527 commented on June 20, 2024

@xiongguangjie 要不你直接提代码吧 你方便点。

大佬能提问一下吗,就是能否实现实时预览不生成云端录像。而调用下载设备录像时才生成呢。或者简单来说就是 openRtpServer接口能否给个enable_mp4来控制当前流是否录制。

on_publish hook不是开放这个能力给你了吗

好的好的,我去看看

from zlmediakit.

bigff-0527 avatar bigff-0527 commented on June 20, 2024

@xiongguangjie 要不你直接提代码吧 你方便点。

大佬能提问一下吗,就是能否实现实时预览不生成云端录像。而调用下载设备录像时才生成呢。或者简单来说就是 openRtpServer接口能否给个enable_mp4来控制当前流是否录制。

现在就是的,可以通过hook 可以控制是否录像(同时也可以通过接口控制算法录像),on_publish 的返回值,同时你没流怎么录像?????

好的,我目前的需求就是,不需要实时预览时产生多余的云端录像,只有我在wvp调用下载国标录像时生成云端录像,所以我修改了wvp源码,从定时器入手删除文件的o_O。如果大佬们更新了补丁的话,定时器也能实现我的需求

from zlmediakit.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.