Browse Source

增加补全截帧URL接口

jiequan.bi 5 years ago
parent
commit
828436c2cc

+ 15 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialInfoController.java

@@ -30,6 +30,7 @@ import org.jeecg.modules.ctop.service.IProjectMemberService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.text.ParseException;
 import java.util.Arrays;
@@ -51,6 +52,8 @@ import java.util.Map;
 public class MaterialInfoController {
     @Autowired
     private IMaterialInfoService materialInfoService;
+    @Resource
+    private IMaterialCutFrameService materialCutFrameService;
     @Autowired
     private IMaterialAscriptionService materialAscriptionService;
     @Autowired
@@ -76,6 +79,18 @@ public class MaterialInfoController {
         return materialInfoService.correlationUpload(json);
     }
 
+    @PostMapping("/supplementFrameUrl")
+    public Result<Object> supplementFrameUrl(@RequestParam String videoMD5){
+        Result<Object> result=new Result<>();
+        boolean bool = materialCutFrameService.updateTencentCutFrame(videoMD5);
+        if(!bool){
+            result.setSuccess(false);
+            result.error500("补全截帧url失败");
+            return result;
+        }
+        result.setSuccess(true);
+        return result;
+    }
 
     @GetMapping(value = "/report")
     public JSONObject report(String userId) {

+ 1 - 0
module-common/src/main/java/cn/com/ctop/common/module/constant/CosConstant.java

@@ -4,6 +4,7 @@ public class CosConstant {
 
     //数据万象URL
     public static final String URL="https://media-1301855440.ci.ap-chongqing.myqcloud.com/";
+    //COS地址前缀
     public static final String COS_MEDIA_URL_PREFIX ="https://media-1301855440.cos.ap-chongqing.myqcloud.com";
     //jobs接口URL
     public static final String URL_JOBS=URL+"jobs";

+ 26 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialCutFrameServiceImpl.java

@@ -364,7 +364,33 @@ public class MaterialCutFrameServiceImpl extends ServiceImpl<MaterialCutFrameMap
             e.printStackTrace();
         }
 
+    }
 
+    @Override
+    public boolean updateTencentCutFrame(String videoMD5) {
+        boolean result=true;
+        Map<String, Object> coverMap = CloudVideoProcessUtil.supplementFrameUrl(videoMD5);
+        for (int i = 0; i <= 13; i++) {
+            String url = (String) coverMap.get(String.valueOf(i));
+            if (!Check.isNull(url)) {
+                String cutFramePath = LoadFileUtil.downLoadFromUrl(url, imageUpLoadPath);
+                String cutFrameMd5 = null;
+                try {
+                    cutFrameMd5 = LoadFileUtil.getMD5(cutFramePath);
+                } catch (IOException e) {
+                    log.error(e.getMessage());
+                }
+                QueryWrapper<MaterialCutFrame> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("video_signature", videoMD5);
+                queryWrapper.eq("image_index", i + 1);
+                MaterialCutFrame cutFrame = new MaterialCutFrame();
+                cutFrame.setSignature(cutFrameMd5);
+                cutFrame.setUrl(url);
+                result = this.update(cutFrame, queryWrapper);
+                LoadFileUtil.delFile(cutFramePath);
+            }
+        }
+        return result;
     }
 
     @Override

+ 7 - 4
module-common/src/main/java/cn/com/ctop/common/module/utils/CloudVideoProcessUtil.java

@@ -1,6 +1,7 @@
 package cn.com.ctop.common.module.utils;
 
 import cn.com.ctop.common.module.constant.CosConstant;
+import cn.com.ctop.common.module.vo.StatisticCampaignVo;
 import cn.hutool.core.map.MapUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.qcloud.cos.auth.BasicCOSCredentials;
@@ -279,17 +280,19 @@ public class CloudVideoProcessUtil {
         );
     }
 
-    private static Map<String, Object> getFrameUrl(String outputPath) {
+    public static Map<String,Object> supplementFrameUrl(String videoMD5){
         Map<String, Object> result = new HashMap<>();
         for (int i = 0; i <= 13; i++) {
-            result.put("" + i + "", CosConstant.URL_COS_ADDRESS + outputPath.replace("${Number}", "" + i + ""));
+            result.put("" + i + "", CosConstant.URL_COS_ADDRESS+"cutFrame/"+videoMD5+"/"+i+".jpg");
         }
         return result;
     }
 
-    private static Map<String, Object> getPictureUrl(String outputPath) {
+    private static Map<String, Object> getFrameUrl(String outputPath) {
         Map<String, Object> result = new HashMap<>();
-        result.put("0", CosConstant.URL_COS_ADDRESS + outputPath);
+        for (int i = 0; i <= 13; i++) {
+            result.put("" + i + "", CosConstant.URL_COS_ADDRESS + outputPath.replace("${Number}", "" + i + ""));
+        }
         return result;
     }