gao.qiang 1 год назад
Родитель
Сommit
4d94767c2e

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

@@ -932,7 +932,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
     public void playbackURLs(List<String> list) {
         log.info("--------------->playbackURLs");
         CompletableFuture future = CompletableFuture.supplyAsync(() -> {
-//            for (String code : list) {
+            for (String code : list) {
 //                PlaybackVo playbackVo = new PlaybackVo();
 //                playbackVo.setCameraIndexCode(code);
 //                // 获取当前时间
@@ -961,7 +961,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
                 recordVideoThread.is_audio = true;
                 new Thread(recordVideoThread).start();
 //                }
-//            }
+            }
             return 1;
         });
         future.join();

+ 2 - 2
business-service/src/main/java/com/ozs/utils/FfmpegUtil.java

@@ -42,10 +42,10 @@ public class FfmpegUtil implements Runnable {
                     return;
                 }
 // 流媒体输出地址,分辨率(长,高),是否录制音频(0:不录制/1:录制)
-                recorder = new FFmpegFrameRecorder(out_file_path, frame.imageWidth, frame.imageHeight, is_audio ? 1 : 0);
+                recorder = new FFmpegFrameRecorder(out_file_path, 640, 340, is_audio ? 1 : 0);
                 recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264);//直播流格式
                 recorder.setFormat(file_format);//录制的视频格式
-                recorder.setFrameRate(25);//帧数
+                recorder.setFrameRate(100);//帧数
                 recorder.start();//开始录制
 // 计算结束时间
                 long endTime = System.currentTimeMillis() + times_sec * 1000;

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

@@ -27,7 +27,6 @@ import com.ozs.system.service.DataScoreUtil;
 import com.ozs.system.service.ISysDeptService;
 import com.ozs.utils.CameraUtil;
 import com.ozs.utils.CaneraConfig;
-import com.ozs.utils.FfmpegUtil;
 import com.ozs.web.core.config.GetCameraPreviewURL;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -1036,10 +1035,9 @@ public class BaseCameraManagementController extends BaseController {
     @ApiOperation("报警回放本地测试")
     @Log(title = "相机台账管理", businessType = BusinessType.MESSAGE)
     public AjaxResult getAlarmRecord() {
-        FfmpegUtil recordVideoThread = new FfmpegUtil();
-        recordVideoThread.out_file_path = "/opt/streams/map/42010001541320000024.mp4";
-        recordVideoThread.times_sec = 30L;// 最好设置结束时长 如直接停止程序会造成输出文件的损坏无法正常播放
-        recordVideoThread.is_audio = true;
+        List<BaseCameraManagement> list = baseCameraManagementService.list(new QueryWrapper<BaseCameraManagement>().eq("line_dir",2));
+        List<String> collect = list.stream().map(BaseCameraManagement::getCameraCode).collect(Collectors.toList());
+        CompletableFuture.runAsync(() -> cameraUtil.playbackURLs(collect));
         return AjaxResult.success("ok");
     }