소스 검색

修改视频

hexiao 2 년 전
부모
커밋
587531df21
1개의 변경된 파일24개의 추가작업 그리고 37개의 파일을 삭제
  1. 24 37
      hazard-admin/src/main/java/com/ozs/web/core/util/CameraUtil.java

+ 24 - 37
hazard-admin/src/main/java/com/ozs/web/core/util/CameraUtil.java

@@ -12,14 +12,10 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.util.ObjectUtils;
-import springfox.documentation.spring.web.json.Json;
 
 import javax.annotation.PostConstruct;
 import java.io.*;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -33,8 +29,11 @@ public class CameraUtil {
     private static String historyUrl;
     private static String ffmpegPath;
     private static String mappingUrl;
+    private static String surl;
     @Autowired
     private CaneraConfig caneraConfig;
+    @Autowired
+    private ServerConfig serverConfig;
 
     /**
      * 历史回放
@@ -45,36 +44,11 @@ public class CameraUtil {
      * @return
      * @throws IOException
      */
-    public static String historyPlay(String channel, Date startTm, Date endTm) throws IOException {
-        if (StringUtils.isBlank(channel)
-                || ObjectUtils.isEmpty(startTm)
-                || ObjectUtils.isEmpty(endTm)) {
-            return null;
-        }
-        // 调用视频服务返回参数
-        String startTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, startTm);
-        String endTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, startTm);
-        String param = "channel=" + channel + "&startTime=" + startTime + "&endTime=" + endTime;
-        String s = HttpUtils.sendGet(historyUrl + "/api/record/flv/list", param);
-
-        // 视频拼接
-        if (!StringUtils.isBlank(s)) {
-            List<Map<String, Object>> maps = JSON.parseArray(s, Map.class);
-            // 视频服务映射路径
-            String NewfilePath = BaseConfig.getProfile() + "/" + channel + "/" + startTime + "/" + endTime + ".flv";
-            List<String> fromVideoFileList = new ArrayList();
-            for (Map<String, Object> map : maps) {
-                Object path = map.get("Path");
-                if (!ObjectUtils.isEmpty(path)) {
-                    fromVideoFileList.add(mappingUrl + path);
-                }
-            }
-            convetor(fromVideoFileList, NewfilePath);
-            return null;
-//            return systemUrl + "/profile" + "/" + channel + "/" + startTime + "/" + endTime + ".flv";
-        }
-        // http://47.106.159.135/record/flv/34020000001320000002/20230304_183122_183222-d98df13f-ba77-11ed-aeb9-00163e06a5f3.flv
-        return null;
+    public static String historyPlay(List<String> fromVideoFileList, String ph) throws IOException {
+        // 视频服务映射路径
+        String NewfilePath = BaseConfig.getProfile() + ph;
+        convetor(fromVideoFileList, NewfilePath);
+        return surl + "/profile" + ph;
     }
 
     public static String getPlayFlv(String cameraCode, String channel) {
@@ -96,16 +70,21 @@ public class CameraUtil {
         return HttpUtils.sendGet(url + "/gb28181/api/records", param);
     }
 
-    public static List<String> historyPlayList(String channel, Date startTm, Date endTm) {
+
+    public static String historyPlayList(String channel, Date startTm, Date endTm) {
         if (StringUtils.isBlank(channel)
                 || ObjectUtils.isEmpty(startTm)
                 || ObjectUtils.isEmpty(endTm)) {
             return null;
         }
+
         List<String> ls = new ArrayList<>();
         // 调用视频服务返回参数
         String startTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, startTm);
         String endTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, startTm);
+        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);
         // 视频拼接
@@ -143,7 +122,14 @@ public class CameraUtil {
                 }
             }
         }
-        return ls;
+        if (!ObjectUtils.isEmpty(ls)) {
+            try {
+                return historyPlay(ls, ph);
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        return null;
     }
 
     @PostConstruct
@@ -152,6 +138,7 @@ public class CameraUtil {
         mappingUrl = caneraConfig.getMappingUrl();
         historyUrl = caneraConfig.getHistoryUrl();
         ffmpegPath = caneraConfig.getFfmpegPath();
+        surl = serverConfig.getUrl();
     }
 
     /**