-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] 删除录像文件成功,但是文件还是存在 #3531
Comments
path的文件还存在??? |
是的,我刚才随便找了个看,录像文件是在的,两个晚上,云端录像wvp上大概1.6w条(之前一个晚上wvp云端录像数据表是8k多条),我目前是修改了wvp删除云端录像定时器源码,是30分钟查询一次数据库,有数据就执行zlm删除录像文件的api(跟源码逻辑一样,不过我修改了获取录像数据的方式),目前wvp数据库是删除干净的。我没注意去看定时器平均执行一次删除多少个,我目前有几个十几个几十个云端录像时定时器删除是没问题的。会不会是数据太多导致zlm没删除完? |
这个不应该,是不是文件被占用了(还在被其他程序占用),没被删除成功 |
不应该吧,我现在一样能删除,不过是文件数量没当时那么多。如果没被删除成功 zlm也会返回code = 0吗? |
我看看 |
不会呀,返回0 就是删除成功了 |
那我也不清楚了QAQ,,我周六下班之后就没管了。今天上班一看服务器磁盘都要满了,发现wvp里的云端录像表是删除干净的,但是zlm的record目录下有将近20g的mp4。 |
看下dmesg与zlm的日志是不是有报错之类的 |
zlm生成云端录像时,是不是生成完整的mp4后才插入wvp云端录像表中?如果是的话,我这样删除也没问题呀。源码也是这个逻辑的 |
这个有webhook 去通知wvp |
zlm日志是没看到报错的,wvp也是根据zlm删除的接口code=0才输出日志的,最开始我是看wvp日志的,发现文件还是存在 |
不过这个代码确实有问题 指定文件时(而非文件夹),如果这个流正在录制,确实会删除失败 |
打个补丁吧: 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 |
@xiongguangjie 要不你直接提代码吧 你方便点。 |
辛苦了大佬们 |
大佬能提问一下吗,就是能否实现实时预览不生成云端录像。而调用下载设备录像时才生成呢。或者简单来说就是 openRtpServer接口能否给个enable_mp4来控制当前流是否录制。 |
on_publish hook不是开放这个能力给你了吗 |
现在就是的,可以通过hook 可以控制是否录像(同时也可以通过接口控制算法录像),on_publish 的返回值,同时你没流怎么录像????? |
好的好的,我去看看 |
好的,我目前的需求就是,不需要实时预览时产生多余的云端录像,只有我在wvp调用下载国标录像时生成云端录像,所以我修改了wvp源码,从定时器入手删除文件的o_O。如果大佬们更新了补丁的话,定时器也能实现我的需求 |
|
|
咨询的功能模块
咨询的具体内容和问题
但是我这边查看磁盘,文件还是存在的,请问是为什么。
The text was updated successfully, but these errors were encountered: