|
@@ -117,6 +117,7 @@ public class CameraUtil {
|
|
|
private static RedisCache rc;
|
|
|
private static ServerConfig sc;
|
|
|
private static String recordUrl;
|
|
|
+ private static String isEnable;
|
|
|
|
|
|
public final static String tsFilekey = "mergeVideoTsFile";
|
|
|
|
|
@@ -143,6 +144,7 @@ public class CameraUtil {
|
|
|
private MsgAlarmCloudService msgAlarmCloudService;
|
|
|
@Autowired
|
|
|
BaseDeviceResumeService baseDeviceResumeService;
|
|
|
+
|
|
|
@Resource
|
|
|
BaseCameraManagementService baseCameraManagementService;
|
|
|
@Autowired
|
|
@@ -204,12 +206,12 @@ public class CameraUtil {
|
|
|
*/
|
|
|
public static String getPlayFlv(String cameraCode, String channel, boolean flay, String format) {
|
|
|
if (!ObjectUtils.isEmpty(format) && "WS-FLV".equals(format)) {
|
|
|
- return wsUrl + "/ws/" + channel + "/" + cameraCode ;
|
|
|
+ return wsUrl + "/ws/" + channel + "/" + cameraCode;
|
|
|
}
|
|
|
if (!flay) {
|
|
|
- return webUrl + "/hdl/" + channel + "/" + cameraCode ;
|
|
|
+ return webUrl + "/hdl/" + channel + "/" + cameraCode;
|
|
|
}
|
|
|
- return webUrl + "/hdl/" + channel + "/" + cameraCode ;
|
|
|
+ return webUrl + "/hdl/" + channel + "/" + cameraCode;
|
|
|
}
|
|
|
|
|
|
public static String getPlayFlv(String cameraCode, String channel, String format) {
|
|
@@ -534,6 +536,12 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
|
|
|
* @return
|
|
|
*/
|
|
|
public static String getRecordUrl(String cameraCode, String channel, Date startTm, Date endTm) {
|
|
|
+ log.info("getRecordUrl--->" + cameraCode + "--" + channel + "--" + startTm + "--" + endTm);
|
|
|
+ Integer count = streamPathCount(cameraCode);
|
|
|
+ log.info("getRecordUrl--count->" + count);
|
|
|
+ if (count>3){
|
|
|
+ return "当前回放视频数已超过带宽限制,请您10分钟以后重试";
|
|
|
+ }
|
|
|
log.info(bakUrl + "/gb28181/api/invite?id=" + cameraCode + "&channel=" + channel + "&startTime=" + startTm.getTime()/1000 + "&endTime=" + endTm.getTime()/1000);
|
|
|
String url = bakUrl + "/gb28181/api/invite?id=" + cameraCode + "&channel=" + channel + "&startTime=" + startTm.getTime()/1000 + "&endTime=" + endTm.getTime()/1000;
|
|
|
try {
|
|
@@ -543,12 +551,18 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
|
|
|
log.info("-----getRecordUrl----message--" + cameraCode + "---" + response.message());
|
|
|
log.info("-----getRecordUrl----body--" + cameraCode + "---" + response.body());
|
|
|
if (response.code() == 200) {
|
|
|
- String path = apiSummary(cameraCode + "/" + channel + "/" + startTm.getTime() / 1000 + "-" + endTm.getTime() / 1000);
|
|
|
- if (StringUtils.isNotEmpty(path)) {
|
|
|
- return path;
|
|
|
- } else {
|
|
|
- return "当前相机暂无回放视频";
|
|
|
- }
|
|
|
+// String path = apiSummary(cameraCode + "/" + channel + "/" + startTm.getTime() / 1000 + "-" + endTm.getTime() / 1000);
|
|
|
+// if (StringUtils.isNotEmpty(path)) {
|
|
|
+// return path;
|
|
|
+// } else {
|
|
|
+// return "当前相机暂无回放视频";
|
|
|
+// }
|
|
|
+ //183.236.39.220:8083/*s/34020000001320809071/34020000001320809071/1747103914-1747104514
|
|
|
+ log.info("-----getRecordUrl----startTm.getTime()--" + startTm.getTime());
|
|
|
+ log.info("-----getRecordUrl----endTm.getTime()--" + endTm.getTime());
|
|
|
+ log.info("-----getRecordUrl----startTm.getTime()/1000--" + startTm.getTime()/1000);
|
|
|
+ log.info("-----getRecordUrl----endTm.getTime()/1000--" + endTm.getTime()/1000);
|
|
|
+ return wsUrl+"/ws/"+cameraCode+"/"+channel+"/"+startTm.getTime()/1000+"-"+endTm.getTime()/1000;
|
|
|
}
|
|
|
}else {
|
|
|
return "当前相机暂无回放视频";
|
|
@@ -560,13 +574,20 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
|
|
|
return "当前相机暂无回放视频";
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ public static String closestream(String path) {
|
|
|
+ //http://10.161.12.50:9080/api/closestream?streamPath=34020000001320427017/34020000001320427017/1748835314-1748835556
|
|
|
+ log.info("closestream--->" + bakUrl + "/api/closestream?streamPath=" + path);
|
|
|
+ return bakUrl + "/api/closestream?streamPath=" + path;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 调用流媒体获取流列表信息
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
public static String apiSummary(String path) {
|
|
|
- log.info("---------apiSummary-----"+path);
|
|
|
+ log.info("---------apiSummary-----" + path);
|
|
|
int maxRetries = 5;
|
|
|
int retryCount = 0;
|
|
|
boolean success = false;
|
|
@@ -586,16 +607,16 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
|
|
|
retryCount++;
|
|
|
}
|
|
|
}
|
|
|
- log.info("---------streamArray-----"+streamArray);
|
|
|
+ log.info("---------streamArray-----" + streamArray);
|
|
|
if (!ObjectUtils.isEmpty(streamArray)) {
|
|
|
for (int i = 0; i < streamArray.size(); i++) {
|
|
|
JSONObject subObj = streamArray.getJSONObject(i);
|
|
|
String streamPath = subObj.getString("StreamPath");
|
|
|
- log.info("---------streamPath-----"+streamPath);
|
|
|
+ log.info("---------streamPath-----" + streamPath);
|
|
|
if (streamPath.equals(path)) {
|
|
|
//取出VideoTracks
|
|
|
JSONArray videoJson = subObj.getJSONArray("VideoTracks");
|
|
|
- log.info("---------videoJson-----"+videoJson);
|
|
|
+ log.info("---------videoJson-----" + videoJson);
|
|
|
if (videoJson != null && videoJson.size() > 0) {
|
|
|
return wsUrl + "/ws/" + streamPath;
|
|
|
}
|
|
@@ -605,6 +626,47 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ public static Integer streamPathCount(String code) {
|
|
|
+ int maxRetries = 5;
|
|
|
+ int retryCount = 0;
|
|
|
+ int count=0;
|
|
|
+ boolean success = false;
|
|
|
+ JSONArray streamArray = null;
|
|
|
+ while (!success && retryCount < maxRetries) {
|
|
|
+ try {
|
|
|
+ String data = HttpClientUtil.gets(bakUrl + "/api/summary");
|
|
|
+ log.info("data------------------>" + data);
|
|
|
+ if (StringUtils.isNotEmpty(data)) {
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(data);
|
|
|
+ streamArray = jsonObject.getJSONArray("Streams");
|
|
|
+ success = true;
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.info("Exception caught: " + e.getMessage());
|
|
|
+ // 增加重试计数
|
|
|
+ retryCount++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ log.info("---------streamArray-----" + streamArray);
|
|
|
+ if (!ObjectUtils.isEmpty(streamArray)) {
|
|
|
+ for (int i = 0; i < streamArray.size(); i++) {
|
|
|
+ JSONObject subObj = streamArray.getJSONObject(i);
|
|
|
+ String streamPath = subObj.getString("StreamPath");
|
|
|
+ log.info("---------streamPath-----" + streamPath);
|
|
|
+ //判断streamPath中是否包含code
|
|
|
+ if (streamPath.contains(code)) {
|
|
|
+ //判断streamPath中/是否大于等于2
|
|
|
+ if (streamPath.split("/").length > 2) {
|
|
|
+ count++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return count;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* 定时任务参数flv文件
|
|
|
* -----------------------------废弃
|
|
@@ -848,7 +910,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
|
|
|
if (StringUtils.isBlank(channel)
|
|
|
|| ObjectUtils.isEmpty(startTm)
|
|
|
|| ObjectUtils.isEmpty(endTm)) {
|
|
|
- log.info("channel-----"+channel+"----startTm"+startTm+"-----endTm"+endTm);
|
|
|
+ log.info("channel-----" + channel + "----startTm" + startTm + "-----endTm" + endTm);
|
|
|
return null;
|
|
|
}
|
|
|
Map<Date, Map<String, Object>> m = new HashMap<>();
|
|
@@ -860,11 +922,11 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
|
|
|
// /api/record/flv/list
|
|
|
String s = HttpUtils.sendGet(bakUrl + "/recordpro/api/list", param);
|
|
|
// 视频拼接
|
|
|
- log.info("视频拼接s-----"+s);
|
|
|
+ log.info("视频拼接s-----" + s);
|
|
|
if (!StringUtils.isBlank(s) || "null".equals(s)) {
|
|
|
List<Map<String, Object>> maps = JSON.parseArray(s, Map.class);
|
|
|
if (ObjectUtils.isEmpty(maps)) {
|
|
|
- log.info("maps-----"+maps);
|
|
|
+ log.info("maps-----" + maps);
|
|
|
return null;
|
|
|
}
|
|
|
for (Map<String, Object> map : maps) {
|
|
@@ -941,6 +1003,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
|
|
|
sc = serverConfig;
|
|
|
wsUrl = caneraConfig.getWsUrl();
|
|
|
recordUrl = caneraConfig.getRecordUrl();
|
|
|
+ isEnable=caneraConfig.getIsEnable();
|
|
|
}
|
|
|
|
|
|
|
|
@@ -1016,44 +1079,45 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
|
|
|
* 相机状态修改
|
|
|
*/
|
|
|
public void cameraBlockUp() {
|
|
|
- long baseTime = 60000L;
|
|
|
- //当前时间戳
|
|
|
- long currentTimestamp = System.currentTimeMillis();
|
|
|
- //字典中设置的值
|
|
|
- List<SysDictData> heartIntervalTime = dictDataMapper.selectDictDataByType("heart_interval_time");
|
|
|
- List<SysDictData> triggerWarningFrequency = dictDataMapper.selectDictDataByType("trigger_warning_frequency");
|
|
|
- // 计算时间间隔
|
|
|
- long timeInterval = baseTime;
|
|
|
- if (!ObjectUtils.isEmpty(heartIntervalTime)) {
|
|
|
- timeInterval *= Long.valueOf(heartIntervalTime.get(0).getDictValue());
|
|
|
- }
|
|
|
- if (!ObjectUtils.isEmpty(triggerWarningFrequency)) {
|
|
|
- timeInterval *= Long.valueOf(triggerWarningFrequency.get(0).getDictValue());
|
|
|
- }
|
|
|
- if (ObjectUtils.isEmpty(heartIntervalTime) || ObjectUtils.isEmpty(triggerWarningFrequency)) {
|
|
|
- timeInterval = baseTime * 5 * 3; // 默认值
|
|
|
+ if (isEnable.equals("true")) {
|
|
|
+ long baseTime = 60000L;
|
|
|
+ //当前时间戳
|
|
|
+ long currentTimestamp = System.currentTimeMillis();
|
|
|
+ //字典中设置的值
|
|
|
+ List<SysDictData> heartIntervalTime = dictDataMapper.selectDictDataByType("heart_interval_time");
|
|
|
+ List<SysDictData> triggerWarningFrequency = dictDataMapper.selectDictDataByType("trigger_warning_frequency");
|
|
|
+ // 计算时间间隔
|
|
|
+ long timeInterval = baseTime;
|
|
|
+ if (!ObjectUtils.isEmpty(heartIntervalTime)) {
|
|
|
+ timeInterval *= Long.valueOf(heartIntervalTime.get(0).getDictValue());
|
|
|
+ }
|
|
|
+ if (!ObjectUtils.isEmpty(triggerWarningFrequency)) {
|
|
|
+ timeInterval *= Long.valueOf(triggerWarningFrequency.get(0).getDictValue());
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isEmpty(heartIntervalTime) || ObjectUtils.isEmpty(triggerWarningFrequency)) {
|
|
|
+ timeInterval = baseTime * 5 * 3; // 默认值
|
|
|
+ }
|
|
|
+ // 计算查询的时间范围(前五分钟)
|
|
|
+ long startTime = currentTimestamp - timeInterval;
|
|
|
+ // 查询 MQ 日志
|
|
|
+ LambdaQueryWrapper<MqLog> mqLogQuery = new LambdaQueryWrapper<>();
|
|
|
+ mqLogQuery.between(MqLog::getCreateTime, new Date(startTime), new Date(currentTimestamp));
|
|
|
+ List<MqLog> mqLogs = mqLogService.list(mqLogQuery);
|
|
|
+ Set<String> loggedCameraCodes = mqLogs.stream().map(MqLog::getCameraCode).collect(Collectors.toSet());
|
|
|
+ // 获取所有设备
|
|
|
+ List<BaseDeviceDynamicManagement> devices = baseDeviceDynamicManagementService.list();
|
|
|
+ Set<String> allCameraCodes = devices.stream().map(BaseDeviceDynamicManagement::getCameraCode).collect(Collectors.toSet());
|
|
|
+ // 找出未记录日志的设备
|
|
|
+ Set<String> inactiveCameraCodes = new HashSet<>(allCameraCodes);
|
|
|
+ inactiveCameraCodes.removeAll(loggedCameraCodes);
|
|
|
+ // 保存设备状态变更记录
|
|
|
+ saveDeviceResume(loggedCameraCodes, 1);
|
|
|
+ saveDeviceResume(inactiveCameraCodes, 2);
|
|
|
+
|
|
|
+ // 更新设备状态
|
|
|
+ updateDeviceStatus(loggedCameraCodes, 1); // 启用设备
|
|
|
+ updateDeviceStatus(inactiveCameraCodes, 2); // 禁用设备
|
|
|
}
|
|
|
- // 计算查询的时间范围(前五分钟)
|
|
|
- long startTime = currentTimestamp - timeInterval;
|
|
|
- // 查询 MQ 日志
|
|
|
- LambdaQueryWrapper<MqLog> mqLogQuery = new LambdaQueryWrapper<>();
|
|
|
- mqLogQuery.between(MqLog::getCreateTime, new Date(startTime), new Date(currentTimestamp));
|
|
|
- List<MqLog> mqLogs = mqLogService.list(mqLogQuery);
|
|
|
- Set<String> loggedCameraCodes = mqLogs.stream().map(MqLog::getCameraCode).collect(Collectors.toSet());
|
|
|
- // 获取所有设备
|
|
|
- List<BaseDeviceDynamicManagement> devices = baseDeviceDynamicManagementService.list();
|
|
|
- Set<String> allCameraCodes = devices.stream().map(BaseDeviceDynamicManagement::getCameraCode).collect(Collectors.toSet());
|
|
|
- // 找出未记录日志的设备
|
|
|
- Set<String> inactiveCameraCodes = new HashSet<>(allCameraCodes);
|
|
|
- inactiveCameraCodes.removeAll(loggedCameraCodes);
|
|
|
-
|
|
|
- // 更新设备状态
|
|
|
- updateDeviceStatus(loggedCameraCodes, 1); // 启用设备
|
|
|
- updateDeviceStatus(inactiveCameraCodes, 2); // 禁用设备
|
|
|
-
|
|
|
- // 保存设备状态变更记录
|
|
|
- saveDeviceResume(loggedCameraCodes, 1);
|
|
|
- saveDeviceResume(inactiveCameraCodes, 2);
|
|
|
}
|
|
|
|
|
|
// 辅助方法:更新设备状态
|
|
@@ -1075,10 +1139,23 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
|
|
|
|
|
|
List<BaseDeviceResume> resumes = new ArrayList<>();
|
|
|
for (String cameraCode : cameraCodes) {
|
|
|
+ BaseDeviceDynamicManagement deviceDynamicManagement = baseDeviceDynamicManagementService.getOne(
|
|
|
+ new LambdaQueryWrapper<BaseDeviceDynamicManagement>()
|
|
|
+ .eq(BaseDeviceDynamicManagement::getCameraCode, cameraCode));
|
|
|
+ Long count = baseDeviceResumeService.count(
|
|
|
+ new LambdaQueryWrapper<BaseDeviceResume>()
|
|
|
+ .eq(BaseDeviceResume::getCameraCode, cameraCode)
|
|
|
+ .eq(BaseDeviceResume::getIsDisable, status));
|
|
|
+
|
|
|
+ boolean shouldDisable = (status == 1) || (!ObjectUtils.isEmpty(deviceDynamicManagement) && (status == 2 && deviceDynamicManagement.getIsDisable().equals(1)));
|
|
|
+
|
|
|
BaseDeviceResume resume = new BaseDeviceResume();
|
|
|
resume.setCameraCode(cameraCode);
|
|
|
resume.setIsDisable(status);
|
|
|
- resumes.add(resume);
|
|
|
+
|
|
|
+ if (shouldDisable||count<=0) {
|
|
|
+ resumes.add(resume);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 批量保存
|
|
@@ -1110,51 +1187,51 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
|
|
|
/**
|
|
|
* 修改相机状态
|
|
|
*/
|
|
|
- public void updateCameraManagementState() {
|
|
|
- //离线的
|
|
|
- ArrayList<String> offLine = new ArrayList<>();
|
|
|
- List<BaseDeviceDynamicManagement> list = baseDeviceDynamicManagementService.list();
|
|
|
- for (BaseDeviceDynamicManagement baseDeviceDynamicManagement : list) {
|
|
|
- // 格式化输入时间
|
|
|
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
- Instant instant = baseDeviceDynamicManagement.getUpdateTime().toInstant();
|
|
|
- // 将Instant对象转换为LocalDateTime对象
|
|
|
- LocalDateTime localDateTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime();
|
|
|
-
|
|
|
-
|
|
|
- // 获取当前时间
|
|
|
- LocalDateTime currentTime = LocalDateTime.now();
|
|
|
-
|
|
|
- // 计算时间差
|
|
|
- Duration duration = Duration.between(localDateTime, currentTime);
|
|
|
-
|
|
|
- // 检查时间差是否大于3小时
|
|
|
- if (duration.toHours() >= 3) {
|
|
|
- offLine.add(baseDeviceDynamicManagement.getCameraCode());
|
|
|
- }
|
|
|
- }
|
|
|
- //修改离线相机
|
|
|
- if (!ObjectUtils.isEmpty(offLine)) {
|
|
|
- LambdaUpdateWrapper<BaseDeviceDynamicManagement> updateWrapper = Wrappers.lambdaUpdate();
|
|
|
- updateWrapper.in(BaseDeviceDynamicManagement::getCameraCode, offLine);
|
|
|
-
|
|
|
- // 执行批量修改操作
|
|
|
- BaseDeviceDynamicManagement update = new BaseDeviceDynamicManagement();
|
|
|
- update.setIsDisable(2);
|
|
|
- baseDeviceDynamicManagementService.update(update, updateWrapper);
|
|
|
- }
|
|
|
-
|
|
|
- //修改在线相机
|
|
|
- LambdaUpdateWrapper<BaseDeviceDynamicManagement> wrapper = Wrappers.lambdaUpdate();
|
|
|
- if (!ObjectUtils.isEmpty(offLine)) {
|
|
|
- wrapper.notIn(BaseDeviceDynamicManagement::getCameraCode, offLine);
|
|
|
- }
|
|
|
-
|
|
|
- // 执行批量修改操作
|
|
|
- BaseDeviceDynamicManagement baseDeviceDynamicManagement = new BaseDeviceDynamicManagement();
|
|
|
- baseDeviceDynamicManagement.setIsDisable(1);
|
|
|
- baseDeviceDynamicManagementService.update(baseDeviceDynamicManagement, wrapper);
|
|
|
- }
|
|
|
+// public void updateCameraManagementState() {
|
|
|
+// //离线的
|
|
|
+// ArrayList<String> offLine = new ArrayList<>();
|
|
|
+// List<BaseDeviceDynamicManagement> list = baseDeviceDynamicManagementService.list();
|
|
|
+// for (BaseDeviceDynamicManagement baseDeviceDynamicManagement : list) {
|
|
|
+// // 格式化输入时间
|
|
|
+// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+// Instant instant = baseDeviceDynamicManagement.getUpdateTime().toInstant();
|
|
|
+// // 将Instant对象转换为LocalDateTime对象
|
|
|
+// LocalDateTime localDateTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime();
|
|
|
+//
|
|
|
+//
|
|
|
+// // 获取当前时间
|
|
|
+// LocalDateTime currentTime = LocalDateTime.now();
|
|
|
+//
|
|
|
+// // 计算时间差
|
|
|
+// Duration duration = Duration.between(localDateTime, currentTime);
|
|
|
+//
|
|
|
+// // 检查时间差是否大于3小时
|
|
|
+// if (duration.toHours() >= 3) {
|
|
|
+// offLine.add(baseDeviceDynamicManagement.getCameraCode());
|
|
|
+// }
|
|
|
+// }
|
|
|
+// //修改离线相机
|
|
|
+// if (!ObjectUtils.isEmpty(offLine)) {
|
|
|
+// LambdaUpdateWrapper<BaseDeviceDynamicManagement> updateWrapper = Wrappers.lambdaUpdate();
|
|
|
+// updateWrapper.in(BaseDeviceDynamicManagement::getCameraCode, offLine);
|
|
|
+//
|
|
|
+// // 执行批量修改操作
|
|
|
+// BaseDeviceDynamicManagement update = new BaseDeviceDynamicManagement();
|
|
|
+// update.setIsDisable(2);
|
|
|
+// baseDeviceDynamicManagementService.update(update, updateWrapper);
|
|
|
+// }
|
|
|
+//
|
|
|
+// //修改在线相机
|
|
|
+// LambdaUpdateWrapper<BaseDeviceDynamicManagement> wrapper = Wrappers.lambdaUpdate();
|
|
|
+// if (!ObjectUtils.isEmpty(offLine)) {
|
|
|
+// wrapper.notIn(BaseDeviceDynamicManagement::getCameraCode, offLine);
|
|
|
+// }
|
|
|
+//
|
|
|
+// // 执行批量修改操作
|
|
|
+// BaseDeviceDynamicManagement baseDeviceDynamicManagement = new BaseDeviceDynamicManagement();
|
|
|
+// baseDeviceDynamicManagement.setIsDisable(1);
|
|
|
+// baseDeviceDynamicManagementService.update(baseDeviceDynamicManagement, wrapper);
|
|
|
+// }
|
|
|
|
|
|
/**
|
|
|
* 删除录制视频的零时文件
|
|
@@ -1236,10 +1313,10 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
|
|
|
}
|
|
|
|
|
|
|
|
|
- public void removePrice(Integer number,String path) {
|
|
|
+ public void removePrice(Integer number, String path) {
|
|
|
log.info("removePrice-----------开始调用");
|
|
|
- log.info("removePrice------number-----"+number);
|
|
|
- log.info("removePrice-------path----"+path);
|
|
|
+ log.info("removePrice------number-----" + number);
|
|
|
+ log.info("removePrice-------path----" + path);
|
|
|
try {
|
|
|
// 创建MinioClient对象
|
|
|
MinioClient minioClient = MinioClient.builder()
|
|
@@ -1249,8 +1326,8 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
|
|
|
|
|
|
// 指定要删除文件的桶名和目录名
|
|
|
String bucketName = this.bucketName;
|
|
|
- String prefix = "camera_picture/normal/"+path;
|
|
|
- log.info("removePrice-------prefix----"+prefix);
|
|
|
+ String prefix = "camera_picture/normal/" + path;
|
|
|
+ log.info("removePrice-------prefix----" + prefix);
|
|
|
// 指定要删除的时间点(此处为当前时间之前的时间)
|
|
|
ZonedDateTime deleteTime = ZonedDateTime.now().minusDays(number); // 删除90天前的文件
|
|
|
|
|
@@ -1294,10 +1371,10 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
|
|
|
String prefix = "camera_picture/normal/";
|
|
|
// List all objects in the bucket
|
|
|
Iterable<Result<Item>> results = minioClient.listObjects(ListObjectsArgs.builder().bucket(bucketName).prefix(prefix).recursive(true).build());
|
|
|
- log.info("-------获取minio所有图片--------"+results);
|
|
|
+ log.info("-------获取minio所有图片--------" + results);
|
|
|
for (Result<Item> result : results) {
|
|
|
Item item = result.get();
|
|
|
- log.info("----item.lastModified()----"+item.lastModified());
|
|
|
+ log.info("----item.lastModified()----" + item.lastModified());
|
|
|
log.info(item.objectName());
|
|
|
}
|
|
|
} catch (Exception e) {
|