|
@@ -21,7 +21,6 @@ import com.iden.common.service.*;
|
|
import com.iden.common.util.ByteUtil;
|
|
import com.iden.common.util.ByteUtil;
|
|
import com.iden.common.util.DateUtils;
|
|
import com.iden.common.util.DateUtils;
|
|
import com.iden.common.util.FileUtil;
|
|
import com.iden.common.util.FileUtil;
|
|
-import com.iden.common.videotool.VideoTool;
|
|
|
|
import com.iden.common.vo.FaceRetrieveResultVO;
|
|
import com.iden.common.vo.FaceRetrieveResultVO;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.logging.log4j.LogManager;
|
|
import org.apache.logging.log4j.LogManager;
|
|
@@ -49,10 +48,6 @@ public class FaceIdenService {
|
|
@Resource
|
|
@Resource
|
|
private IdenCommunityService idenCommunityService;
|
|
private IdenCommunityService idenCommunityService;
|
|
@Resource
|
|
@Resource
|
|
- private PersonService personService;
|
|
|
|
- @Resource
|
|
|
|
- private IdenCameraVideoService idenCameraVideoService;
|
|
|
|
- @Resource
|
|
|
|
private IdenPersonService idenPersonService;
|
|
private IdenPersonService idenPersonService;
|
|
|
|
|
|
|
|
|
|
@@ -363,85 +358,4 @@ public class FaceIdenService {
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
- /**
|
|
|
|
- * 把摄像头上传的图像解开为一帧帧图片,放到图像目录下,等待识别引擎处理
|
|
|
|
- * @throws Exception
|
|
|
|
- */
|
|
|
|
- public void handleCameraVideo() throws Exception {
|
|
|
|
- logger.info("FaceIdenService.handleCameraVideo start...");
|
|
|
|
- File originVideoDirFile = new File(idenRoot + "data/origin/camera/video");
|
|
|
|
- //使用摄像头编码做目录名,里面存放视频,名称里包含拍摄结束时间
|
|
|
|
- // 比如 20211217123343_76639ced-6409-11ec-b8f9-fa883e4e1e9f.mp4
|
|
|
|
- if (originVideoDirFile.isDirectory()) {
|
|
|
|
- File[] cameraCodeDirs = originVideoDirFile.listFiles();
|
|
|
|
- if (cameraCodeDirs != null && cameraCodeDirs.length > 0) {
|
|
|
|
- for(File cameraCodedir : cameraCodeDirs) {
|
|
|
|
- if (cameraCodedir.isDirectory()) {
|
|
|
|
- File[] videoFiles = FileUtil.sortByName(cameraCodedir.listFiles());
|
|
|
|
- if (videoFiles != null && videoFiles.length > 0) {
|
|
|
|
- String cameraCode = cameraCodedir.getName();
|
|
|
|
- QueryWrapper<IdenCamera> queryWrapper = new QueryWrapper<>();
|
|
|
|
- queryWrapper.lambda().eq(IdenCamera::getCode,cameraCode);
|
|
|
|
- IdenCamera idenCamera = idenCameraService.getOne(queryWrapper);
|
|
|
|
- if(idenCamera == null){
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- for(File videoFile : videoFiles){
|
|
|
|
- String videoFileName = videoFile.getName();
|
|
|
|
- logger.info("FaceIdenService.handleCameraVideo ...videoFile.getName() == " + videoFileName);
|
|
|
|
-
|
|
|
|
- String shootEndTimeStr = videoFileName.substring(0, videoFileName.indexOf("_"));
|
|
|
|
- Date shootEndTime = DateUtils.strToDate(shootEndTimeStr,"yyyyMMddHHmmss");
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- String tmp = UUID.randomUUID().toString();
|
|
|
|
- File finalDirTmp = new File(videoFile.getParentFile().getAbsolutePath().replace("origin","discard") + "/" + tmp);
|
|
|
|
- if(!finalDirTmp.exists()){
|
|
|
|
- finalDirTmp.mkdirs();
|
|
|
|
- }
|
|
|
|
- logger.info("FaceIdenService.handleCameraVideo ...originImageDir == " + finalDirTmp.getAbsolutePath());
|
|
|
|
-
|
|
|
|
- File originImageDir = new File(videoFile.getParentFile().getAbsolutePath().replace("video","image"));
|
|
|
|
- if(!originImageDir.exists()){
|
|
|
|
- originImageDir.mkdirs();
|
|
|
|
- }
|
|
|
|
- logger.info("FaceIdenService.handleCameraVideo ...originImageDir == " + originImageDir.getAbsolutePath());
|
|
|
|
-
|
|
|
|
- //先把分解图片放入临时目录,临时目录下的文件重命名后移到原始目录等待图像识别
|
|
|
|
- Long duration = VideoTool.fetchAllPic(ffmpegPath, videoFile.getAbsolutePath(),finalDirTmp.getAbsolutePath(),originImageDir.getAbsolutePath(), shootEndTime);
|
|
|
|
-
|
|
|
|
- File finalVideoDir = new File(videoFile.getParentFile().getAbsolutePath().replace("origin","final"));
|
|
|
|
- if(!finalVideoDir.exists()){
|
|
|
|
- finalVideoDir.mkdirs();
|
|
|
|
- }
|
|
|
|
- logger.info("FaceIdenService.handleCameraVideo ...finalVideoDir == " + finalVideoDir.getAbsolutePath());
|
|
|
|
-
|
|
|
|
- File finalVideoFile = new File(finalVideoDir, videoFileName);
|
|
|
|
- logger.info("FaceIdenService.handleCameraVideo ...finalVideoFile == " + finalVideoFile.getAbsolutePath());
|
|
|
|
- videoFile.renameTo(finalVideoFile);//把视频文件移动到最终目录
|
|
|
|
-
|
|
|
|
- //保存数据库
|
|
|
|
- IdenCameraVideo idenCameraVideo = new IdenCameraVideo();
|
|
|
|
- idenCameraVideo.setVideoUrl(fileUrl + "camera/video/" + cameraCode + "/" + videoFileName);
|
|
|
|
- idenCameraVideo.setCameraId(idenCamera.getId());
|
|
|
|
- idenCameraVideo.setCommunityId(idenCamera.getCommunityId());
|
|
|
|
- idenCameraVideo.setName(videoFileName.substring(0,videoFileName.lastIndexOf(".")));
|
|
|
|
- Long begin = shootEndTime.getTime() - duration;
|
|
|
|
- idenCameraVideo.setPhotographBeginTime(new Date(begin));
|
|
|
|
- idenCameraVideo.setPhotographEndTime(shootEndTime);
|
|
|
|
- idenCameraVideo.setDuration(duration);
|
|
|
|
- idenCameraVideo.setCreateTime(new Date());
|
|
|
|
- idenCameraVideoService.save(idenCameraVideo);
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- logger.info("FaceIdenService.handleCameraVideo end");
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
}
|
|
}
|