소스 검색

回放修改

gao.qiang 1 년 전
부모
커밋
03420b28a4

+ 36 - 12
business-service/src/main/java/com/ozs/utils/CameraUtil.java

@@ -42,8 +42,10 @@ import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.Instant;
 import java.time.LocalDateTime;
 import java.time.OffsetDateTime;
+import java.time.ZoneOffset;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.Calendar;
@@ -557,7 +559,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
         cUtil = cmdCameraUtil;
         sc = serverConfig;
         wsUrl = caneraConfig.getWsUrl();
-        httpUrl=caneraConfig.getHttpUrl();
+        httpUrl = caneraConfig.getHttpUrl();
         recordUrl = caneraConfig.getRecordUrl();
         hkUrl = caneraConfig.getHkUrl();
         host = caneraConfig.getHost();
@@ -712,14 +714,28 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
      * @param endTm
      * @return
      */
-    public static String getRecordList(String code, Date startTm, Date endTm) {
+    public static String getRecordList(String code, Date startTm, Date endTm,String channel) {
         PlaybackVo playbackVo = new PlaybackVo();
         playbackVo.setCameraIndexCode(code);
-        // 格式化时间
-        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
-        playbackVo.setBeginTime(dateFormat.format(startTm));
-        playbackVo.setEndTime(dateFormat.format(endTm));
-        playbackVo.setProtocol("ws");
+
+
+        // 将 Date 转换为 Instant
+        Instant startInstant = startTm.toInstant();
+        Instant endInstant = endTm.toInstant();
+
+        // 将 Instant 转换为 OffsetDateTime
+        OffsetDateTime startOffsetDateTime = startInstant.atOffset(ZoneOffset.UTC);
+        OffsetDateTime endOffsetDateTime = endInstant.atOffset(ZoneOffset.UTC);
+        // 格式化为字符串
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
+        String formattedStartTime = startOffsetDateTime.format(formatter);
+        String formattedEndTime = endOffsetDateTime.format(formatter);
+
+        // 将格式化后的时间设置到 playbackVo 中
+        playbackVo.setBeginTime(formattedStartTime);
+        playbackVo.setEndTime(formattedEndTime);
+        playbackVo.setProtocol("rtsp");
+        playbackVo.setExpand("streamform=rtp");
         //对象转换json字符串
         String body = JSONObject.toJSONString(playbackVo);
         //调用天网接口
@@ -729,7 +745,15 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
         if ("0".equals(outJson.getString("code"))) {
             JSONObject data = outJson.getJSONObject("data");
             String urls = data.getString("url");
-            return urls;
+            log.info("urls----------->"+urls);
+            try {
+                TimeUnit.SECONDS.sleep(3);
+                String msg = HttpUtils.sendGet(httpUrl + "/rtsp/api/pull?target=" + urls + "&streamPath=" + code + "/" + channel + "&save=0");
+                log.info("msg---------->" + msg);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+            return getPlayFlv(code, channel, true);
         } else {
             return "调用天网接口失败";
         }
@@ -1003,14 +1027,14 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
             String urls = data.getString("url");
             log.info("urls----->" + urls);
             try {
-                TimeUnit.SECONDS.sleep(5);
+                TimeUnit.SECONDS.sleep(3);
                 String msg = HttpUtils.sendGet(httpUrl + "/rtsp/api/pull?target=" + urls + "&streamPath=" + camerasVo.getCameraIndexCode() + "/" + channel + "&save=0");
-               log.info("msg---------->"+msg);
+                log.info("msg---------->" + msg);
             } catch (InterruptedException e) {
                 e.printStackTrace();
             }
-        }else {
-            log.info("流媒体获取流失败----->"); 
+        } else {
+            log.info("流媒体获取流失败----->");
         }
     }
 

+ 1 - 1
vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseCameraManagementController.java

@@ -758,7 +758,7 @@ public class BaseCameraManagementController extends BaseController {
         if (ObjectUtils.isEmpty(one)) {
             throw new BaseException("相机编号【" + vo.getCameraCode() + "】不存在");
         }
-        return new AjaxResult(200, "ok", CameraUtil.getRecordList(one.getCameraCode(), vo.getStartTime(), vo.getEntTime()));
+        return new AjaxResult(200, "ok", CameraUtil.getRecordList(one.getCameraCode(), vo.getStartTime(), vo.getEntTime(),one.getChannel()));
     }
 
     @ApiOperation("批量查询录像")