Browse Source

相机回放视频过滤排序

hexiao 2 years ago
parent
commit
3795518e51

+ 14 - 0
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseCameraManagementController.java

@@ -80,6 +80,8 @@ public class BaseCameraManagementController extends BaseController {
     private MsgAlarmService msgAlarmService;
     @Autowired
     private BaseRailwayManagementService baseRailwayManagementService;
+    @Autowired
+    private ServerConfig serverConfig;
 
     /**
      * 相机台账管理分页
@@ -336,6 +338,18 @@ public class BaseCameraManagementController extends BaseController {
         return success(CameraUtil.historyPlayList(one.getChannel(), vo.getStartTime(), vo.getEntTime()));
     }
 
+    @ApiOperation("播放回放")
+    @PostMapping("/api/play")
+    public AjaxResult play(@Validated @RequestBody BaseCameraResVo vo) {
+        LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
+        lw.eq(BaseCameraManagement::getCameraCode, vo.getCameraCode());
+        BaseCameraManagement one = baseCameraManagementService.getOne(lw);
+        if (ObjectUtils.isEmpty(one)) {
+            throw new BaseException("相机编号【" + vo.getCameraCode() + "】不存在");
+        }
+        return new AjaxResult(200, "ok", serverConfig.getUrl() + CameraUtil.historyPlayListStr(one.getChannel(), vo.getStartTime(), vo.getEntTime()));
+//        return success(CameraUtil.historyPlayList(one.getChannel(), vo.getStartTime(), vo.getEntTime()));
+    }
 
     @ApiOperation("视频服务设备数量")
     @GetMapping("/totalNumberOfDevices")

+ 35 - 15
hazard-admin/src/main/java/com/ozs/web/core/util/CameraUtil.java

@@ -79,6 +79,21 @@ public class CameraUtil {
     }
 
 
+    public static String historyPlayListStr(String channel, Date startTm, Date endTm) {
+        List<String> list = historyPlayList(channel, startTm, endTm);
+        String ph = "/flv/" + DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, new Date())
+                + "/" + channel + "/"
+                + UUID.randomUUID().toString() + ".flv";
+        try {
+            return historyPlay(list, ph);
+        } catch (IOException e) {
+            log.error(e.getMessage());
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+
     public static List<String> historyPlayList(String channel, Date startTm, Date endTm) {
         if (StringUtils.isBlank(channel)
                 || ObjectUtils.isEmpty(startTm)
@@ -91,9 +106,7 @@ public class CameraUtil {
         // 调用视频服务返回参数
         String startTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, startTm);
         String endTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, endTm);
-        String ph = "/flv/" + DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, new Date())
-                + "/" + channel + "/" + startTime + "/" + endTime + "/"
-                + UUID.randomUUID().toString() + ".flv";
+
         String param = "channel=" + channel + "&startTime=" + startTime + "&endTime=" + endTime;
         String s = HttpUtils.sendGet(historyUrl + "/api/record/flv/list", param);
         // 视频拼接
@@ -141,15 +154,11 @@ public class CameraUtil {
                 ls.add(m.get(d));
             });
             return ls;
-//            try {
-//                return historyPlay(ls, ph);
-//            } catch (IOException e) {
-//                e.printStackTrace();
-//            }
         }
         return null;
     }
 
+
     @PostConstruct
     public void init() {
         url = caneraConfig.getUrl();
@@ -303,14 +312,25 @@ public class CameraUtil {
 
     public static void main(String[] args) throws IOException {
 
-        List<String> fromVideoFileList = new ArrayList();
+//        List<String> fromVideoFileList = new ArrayList();
         String p = "C:\\Users\\Administrator.DESKTOP-0NUUTMM\\Desktop\\work\\106\\流媒体\\";
-        String NewfilePath = p + "mergevideo.flv";
-        fromVideoFileList.add(p + "20230303_174931_175031-d6d56396-b9a8-11ed-aeb9-00163e06a5f3.flv");
-        fromVideoFileList.add(p + "20230303_175032_175132-fb32b9fe-b9a8-11ed-aeb9-00163e06a5f3.flv");
-        fromVideoFileList.add(p + "20230303_175133_175233-1f97af04-b9a9-11ed-aeb9-00163e06a5f3.flv");
-        fromVideoFileList.add(p + "20230303_175234_175334-43f4daf1-b9a9-11ed-aeb9-00163e06a5f3.flv");
-        convetor(fromVideoFileList, NewfilePath);
+        String newfilePath = p + "mvideo.flv";
+//        fromVideoFileList.add(p + "20230303_174931_175031-d6d56396-b9a8-11ed-aeb9-00163e06a5f3.flv");
+//        fromVideoFileList.add(p + "20230303_175032_175132-fb32b9fe-b9a8-11ed-aeb9-00163e06a5f3.flv");
+//        fromVideoFileList.add(p + "20230303_175133_175233-1f97af04-b9a9-11ed-aeb9-00163e06a5f3.flv");
+//        fromVideoFileList.add(p + "20230303_175234_175334-43f4daf1-b9a9-11ed-aeb9-00163e06a5f3.flv");
+//        convetor(fromVideoFileList, NewfilePath);
+        List<String> list = Arrays.asList("http://47.106.159.135/record/flv/34020000001320000002/20230304_185950_190050-d3f3d9c2-ba7b-11ed-aeb9-00163e06a5f3.flv",
+                "http://47.106.159.135/record/flv/34020000001320000002/20230304_190051_190151-f859029a-ba7b-11ed-aeb9-00163e06a5f3.flv",
+                "http://47.106.159.135/record/flv/34020000001320000002/20230304_190152_190252-1cb977bd-ba7c-11ed-aeb9-00163e06a5f3.flv",
+                "http://47.106.159.135/record/flv/34020000001320000002/20230304_190253_190353-4117245a-ba7c-11ed-aeb9-00163e06a5f3.flv",
+                "http://47.106.159.135/record/flv/34020000001320000002/20230304_190354_190454-6575b56e-ba7c-11ed-aeb9-00163e06a5f3.flv",
+                "http://47.106.159.135/record/flv/34020000001320000002/20230304_190455_190555-89d6e4b7-ba7c-11ed-aeb9-00163e06a5f3.flv",
+                "http://47.106.159.135/record/flv/34020000001320000002/20230304_190556_190657-ae3bc3a9-ba7c-11ed-aeb9-00163e06a5f3.flv",
+                "http://47.106.159.135/record/flv/34020000001320000002/20230304_190658_190758-d29cd834-ba7c-11ed-aeb9-00163e06a5f3.flv",
+                "http://47.106.159.135/record/flv/34020000001320000002/20230304_190759_190859-f6fdc454-ba7c-11ed-aeb9-00163e06a5f3.flv",
+                "http://47.106.159.135/record/flv/34020000001320000002/20230304_190900_191000-1b5ac0ee-ba7d-11ed-aeb9-00163e06a5f3.flv");
+        mergeFile(list, newfilePath);
 
     }
 }

+ 3 - 3
hazard-admin/src/main/resources/application.yml

@@ -9,8 +9,8 @@ base:
   # 实例演示开关
   demoEnabled: true
   # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
-  #  profile: /data/service/hazard-admin/uploadPath
-  profile: C:\base\uploadPath
+  profile: /data/service/hazard-admin/uploadPath
+  #  profile: C:\base\uploadPath
   # 获取ip地址开关
   addressEnabled: false
   # 验证码类型 math 数组计算 char 字符验证
@@ -157,4 +157,4 @@ file:
   #头像存储目录
   avatarUrl: /data/service/avatar/
   #文件访问前缀
-  filreUrl: http://124.71.171.71:18878
+  filreUrl: http://124.71.171.71:18878

+ 9 - 9
hazard-admin/src/main/resources/logback.xml

@@ -1,18 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
     <!-- 日志存放路径 -->
-	<property name="log.path" value="/home/base/logs" />
+    <property name="log.path" value="/data/service/hazard-admin/logs"/>
     <!-- 日志输出格式 -->
-	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
+    <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
 
-	<!-- 控制台输出 -->
-	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
-		<encoder>
-			<pattern>${log.pattern}</pattern>
-		</encoder>
-	</appender>
+    <!-- 控制台输出 -->
+    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+    </appender>
 
-	<!-- 系统日志输出 -->
+    <!-- 系统日志输出 -->
 	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
 	    <file>${log.path}/sys-info.log</file>
         <!-- 循环政策:基于时间创建日志文件 -->