Bladeren bron

抽帧调整

yumeng 5 jaren geleden
bovenliggende
commit
6aa3cbcec7

+ 18 - 20
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/impl/KuaiShouUploadServiceImpl.java

@@ -14,11 +14,11 @@ import cn.com.ctop.common.module.utils.LoadFileUtil;
 import cn.com.ctop.common.module.utils.PropertiesUtils;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouVideoGet;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouVideoGetService;
+import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouInterfaceService;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.http.ParseException;
-import org.jeecg.common.util.DateUtils;
 import org.jeecg.modules.ctop.service.IKuaiShouUploadService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -43,11 +43,6 @@ import java.util.concurrent.Executors;
 @Service
 public class KuaiShouUploadServiceImpl implements IKuaiShouUploadService {
     private static ExecutorService executorService = Executors.newFixedThreadPool(6);
-
-    @Value("${oss.replace.replace-value}")
-    private String replaceValue;
-    @Value("${oss.replace.replace-old-value}")
-    private String replaceOldValue;
     @Value("${oss.replace.download}")
     private String downloadUrl;
 
@@ -60,11 +55,13 @@ public class KuaiShouUploadServiceImpl implements IKuaiShouUploadService {
     private MaterialParameterMapper parameterMapper;
     @Autowired
     private IKuaiShouVideoGetService kuaiShouVideoGetService;
+    @Autowired
+    private IKuaishouInterfaceService kuaishouInterfaceService;
 
     @Override
     public void upload(MaterialInfo materialInfo) {
         try {
-            String url = materialInfo.getUrl().replace(replaceOldValue, replaceValue);
+            String url = materialInfo.getUrl();
             log.info("replaceUrl:{}", url);
             String localUrl = LoadFileUtil.downLoadFromUrl(url, downloadUrl);
             FileSystemResource resource = new FileSystemResource(new File(localUrl));
@@ -95,7 +92,7 @@ public class KuaiShouUploadServiceImpl implements IKuaiShouUploadService {
             if (!Check.isNull(list)) {
                 for (UserAllocation allocation : list) {
                     Long accountId = allocation.getAccountId();
-                    CtopOauthToken ctopOauthToken = oauthTokenService.getAccessTokenByAccountIdAndMediaId(2,accountId);
+                    CtopOauthToken ctopOauthToken = oauthTokenService.getAccessTokenByAccountIdAndMediaId(2, accountId);
                     if (Check.isNull(ctopOauthToken)) {
                         log.error("快手账户信息为空,accountId:{}", accountId);
                         continue;
@@ -125,18 +122,19 @@ public class KuaiShouUploadServiceImpl implements IKuaiShouUploadService {
                                     if (resultJson.getInteger("code") == 0) {
                                         JSONObject dataJson = resultJson.getJSONObject("data");
                                         if (!Check.isNull(dataJson)) {
-                                            String photoId = dataJson.getString("photo_id");
-                                            String signature = dataJson.getString("signature");
-                                            KuaiShouVideoGet videoGet = new KuaiShouVideoGet();
-                                            videoGet.setAccountId(accountId);
-                                            videoGet.setId(accountId + photoId);
-                                            videoGet.setUrl(materialInfo.getUrl());
-                                            videoGet.setCoverUrl(materialInfo.getUrl()+ "?x-oss-process=video/snapshot,t_00000,m_fast");
-                                            videoGet.setStatDate(DateUtils.getNowDate());
-                                            videoGet.setMaterialType(finalType);
-                                            videoGet.setPhotoId(photoId);
-                                            videoGet.setSignature(signature);
-                                            kuaiShouVideoGetService.saveOrUpdate(videoGet);
+                                            Thread thread = new Thread() {
+                                                @Override
+                                                public void run() {
+                                                    try {
+                                                        Thread.sleep(2 * 1000L);
+                                                        kuaishouInterfaceService.getVideoInfo(ctopOauthToken.getAccessToken(), ctopOauthToken.getAccountId(), dataJson.getString("photo_id"));
+                                                    } catch (InterruptedException e) {
+                                                        e.printStackTrace();
+                                                    }
+                                                }
+                                            };
+                                            thread.start();
+
                                         }
                                         log.info("快手素材同步完成,accountId:{},code:{},返回信息:{}", accountId, materialInfo.getCode(), resultJson);
                                     } else {

+ 2 - 1
module-common/src/main/java/cn/com/ctop/common/module/service/IMaterialCutFrameService.java

@@ -26,7 +26,8 @@ public interface IMaterialCutFrameService extends IService<MaterialCutFrame> {
 
     void loadCosCutFrame(String jobId, String videoSignature);  //腾讯云抽帧任务状态查询以及数据入库
 
-    void getTencentCutFrame(String videoUrl,String materialId, String path,String coveUrl);
+    void getTencentCutFrame(String videoUrl,String materialId,String coveUrl);
 
     MaterialCutFrame getCutFrameByCode(String code);
+
 }

+ 7 - 8
module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialCutFrameServiceImpl.java

@@ -26,7 +26,6 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.io.IOException;
-import java.net.URLDecoder;
 import java.net.URLEncoder;
 import java.util.List;
 import java.util.Map;
@@ -318,12 +317,13 @@ public class MaterialCutFrameServiceImpl extends ServiceImpl<MaterialCutFrameMap
 
 
     @Override
-    public void getTencentCutFrame(String videoUrl, String materialId, String path, String coveUrl) {
+    public void getTencentCutFrame(String videoUrl, String materialId, String coveUrl) {
         try {
-            if (Check.isNull(materialId) || Check.isNull(path)) {
+
+            if (Check.isNull(materialId)) {
                 return;
             }
-
+            String loadImage = "cutFrame/" + materialId + "/${Number}.jpg";
             QueryWrapper<MaterialCutFrame> queryWrapper = new QueryWrapper<>();
             queryWrapper.eq("video_signature", materialId);
             queryWrapper.last("limit 1");
@@ -332,7 +332,6 @@ public class MaterialCutFrameServiceImpl extends ServiceImpl<MaterialCutFrameMap
                 log.info("已存推荐封面");
                 return;
             }
-
             // 添加首帧
             String coverCutFramePath = LoadFileUtil.downLoadFromUrl(coveUrl, imageUpLoadPath);
             String CutFrameMd5 = LoadFileUtil.getMD5(coverCutFramePath);
@@ -344,9 +343,9 @@ public class MaterialCutFrameServiceImpl extends ServiceImpl<MaterialCutFrameMap
             this.save(coveCutFrame);
             LoadFileUtil.delFile(coverCutFramePath);
             // 请求从数据接口 获取其余14张截图
-            Map<String, Object> coverMap = CloudVideoProcessUtil.videoCutFrameHandle(URLDecoder.decode(videoUrl).replace("https://media-1301855440.cos.ap-chongqing.myqcloud.com/", ""), path);
-            for (int i = 1; i <= 14; i++) {
-                String url = (String) coverMap.get(String.valueOf(i));
+            Map<String, Object> coverMap = CloudVideoProcessUtil.videoCutFrameHandle(videoUrl, loadImage);
+            for (int i = 0; i <= 14; i++) {
+                String url = (String) coverMap.get(String.valueOf(i + 1));
                 if (!Check.isNull(url)) {
                     String cutFramePath = LoadFileUtil.downLoadFromUrl(url, imageUpLoadPath);
                     String cutFrameMd5 = LoadFileUtil.getMD5(cutFramePath);

+ 2 - 7
module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialImageInfoServiceImpl.java

@@ -38,10 +38,7 @@ public class MaterialImageInfoServiceImpl extends ServiceImpl<MaterialImageInfoM
 
     @Value("${oss.replace.download}")
     private String downloadUrl;
-    @Value("${oss.replace.replace-value}")
-    private String replaceValue;
-    @Value("${oss.replace.replace-old-value}")
-    private String replaceOldValue;
+
 
 
     @Autowired
@@ -72,9 +69,7 @@ public class MaterialImageInfoServiceImpl extends ServiceImpl<MaterialImageInfoM
                     materialImageInfo.setMaterialName(json.getString("materialName"));
                     materialImageInfo.setStatus(0);
                     materialImageInfo.setUserId(userId);
-                    String replaceUrl = url.replace(replaceOldValue, replaceValue);
-                    log.info("图片replaceUrl:{}", url);
-                    String localUrl = LoadFileUtil.downLoadFromUrl(replaceUrl, downloadUrl);
+                    String localUrl = LoadFileUtil.downLoadFromUrl(url, downloadUrl);
                     File picture = new File(localUrl);
                     BufferedImage sourceImg = null;
                     try {

+ 13 - 17
module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialInfoServiceImpl.java

@@ -27,6 +27,7 @@ import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.net.URLDecoder;
 import java.nio.channels.FileChannel;
 import java.util.*;
 import java.util.concurrent.ExecutorService;
@@ -53,11 +54,11 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
     private MaterialInfoMapper materialInfoMapper;
     @Autowired
     private MaterialParameterMapper materialParameterMapper;
+    @Autowired
+    private MaterialAscriptionMapper materialAscriptionMapper;
+    @Autowired
+    private MaterialTagMapper materialTagMapper;
 
-    @Value("${oss.replace.replace-value}")
-    private String replaceValue;
-    @Value("${oss.replace.replace-old-value}")
-    private String replaceOldValue;
     @Value("${oss.replace.download}")
     private String downloadUrl;
 
@@ -118,10 +119,6 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
         return p.matcher(fileName).find();
     }
 
-    @Autowired
-    private MaterialAscriptionMapper materialAscriptionMapper;
-    @Autowired
-    private MaterialTagMapper materialTagMapper;
 
     @Override
     public Map<String, Object> insert(JSONObject jsonObject) {
@@ -330,8 +327,7 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
                 log.info("获取素材基本信息,code:{}", materialInfo.getCode());
                 if (!Check.isNull(materialInfo)) {
                     long l = System.currentTimeMillis();
-                    String videoUrl = materialInfo.getUrl();
-                    String url = videoUrl.replace(replaceOldValue, replaceValue);
+                    String url = materialInfo.getUrl();
                     log.info("replaceUrl:{}", url);
                     String localUrl = null;
                     it.sauronsoftware.jave.MultimediaInfo m = null;
@@ -479,25 +475,25 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
 
             MaterialCutFrame cutFrame = materialCutFrameService.getCutFrameByCode(code);
             if (Check.isNull(cutFrame)) {
-                String loadImage = "cutFrame/" + code + "/${Number}.jpg";
-
-                String coverUrl = "";
-                // Map<String, Object> stringObjectMap = CloudVideoProcessUtil.videoCutFrameHandle(URLDecoder.decode(info.getUrl()).replace("https://media-1301855440.cos.ap-chongqing.myqcloud.com/", ""), loadImage);
-                // coverUrl = (String) stringObjectMap.get("0");
+                String videoUrl = URLDecoder.decode(info.getUrl()).replace("https://media-1301855440.cos.ap-chongqing.myqcloud.com/", "");
+                String loadImage = "cutFrame/" + code + "/zero.jpg";
+                String coverUrl = CloudVideoProcessUtil.videoCutPictureHandle(videoUrl, loadImage);
+                info.setCoverUrl(coverUrl);
                 Thread thread = new Thread() {
                     @Override
                     public void run() {
                         try {
                             log.info("开始抽帧");
-                            materialCutFrameService.getTencentCutFrame(info.getUrl(), code, loadImage, coverUrl);
+                            materialCutFrameService.getTencentCutFrame(videoUrl, code, coverUrl);
                         } catch (Exception e) {
                             e.printStackTrace();
                         }
                     }
                 };
                 thread.start();
+            } else {
+                info.setCoverUrl(cutFrame.getUrl());
             }
-            //  info.setCoverUrl(coverUrl);
             this.save(info);
             JSONArray imageArr = json.getJSONArray("imageArr");
             if (!Check.isNull(imageArr)) {

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

@@ -275,7 +275,7 @@ public class CloudVideoProcessUtil {
     }
     private static Map<String,Object> getFrameUrl(String  outputPath){
         Map<String,Object> result=new HashMap<>();
-        for(int i=1;i<15;i++){
+        for(int i=0;i<14;i++){
             result.put(""+i+"",CosConstant.URL_COS_ADDRESS+outputPath.replace("${Number}",""+i+""));
         }
         return result;

+ 1 - 4
module-ctop/src/main/java/cn/com/ctop/manage/modules/material/service/impl/MaterialUploadImageServiceImpl.java

@@ -35,10 +35,7 @@ import java.util.concurrent.Executors;
 @Service
 public class MaterialUploadImageServiceImpl implements IMaterialUploadImageService {
     static ExecutorService executorService = Executors.newFixedThreadPool(8);
-    @Value("${oss.replace.replace-value}")
-    private String replaceValue;
-    @Value("${oss.replace.replace-old-value}")
-    private String replaceOldValue;
+
     @Value("${oss.replace.download}")
     private String downloadUrl;
 

+ 2 - 6
module-ctop/src/main/java/cn/com/ctop/manage/modules/material/service/impl/MaterialUploadServiceImpl.java

@@ -42,10 +42,6 @@ import java.util.concurrent.Executors;
 public class MaterialUploadServiceImpl implements IMaterialUploadService {
     static ExecutorService kuaiShouExecutorService = Executors.newFixedThreadPool(5);
     static ExecutorService touTiaoExecutorService = Executors.newFixedThreadPool(5);
-    @Value("${oss.replace.replace-value}")
-    private String replaceValue;
-    @Value("${oss.replace.replace-old-value}")
-    private String replaceOldValue;
     @Value("${oss.replace.download}")
     private String downloadUrl;
 
@@ -103,7 +99,7 @@ public class MaterialUploadServiceImpl implements IMaterialUploadService {
                 continue;
             }
             try {
-                String url = materialInfo.getUrl().replace(replaceOldValue, replaceValue);
+                String url = materialInfo.getUrl();
                 String localUrl = LoadFileUtil.downLoadFromUrl(url, downloadUrl);
 
                 for (int i = 0; i < accountArray.size(); i++) {
@@ -148,7 +144,7 @@ public class MaterialUploadServiceImpl implements IMaterialUploadService {
                 continue;
             }
             try {
-                String url = materialInfo.getUrl().replace(replaceOldValue, replaceValue);
+                String url = materialInfo.getUrl();
                 log.info("replaceUrl:{}", url);
                 String localUrl = LoadFileUtil.downLoadFromUrl(url, downloadUrl);
                 FileSystemResource resource = new FileSystemResource(new File(localUrl));

+ 0 - 4
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/BatchServiceImpl.java

@@ -37,10 +37,6 @@ import java.util.Map;
 @Service
 public class BatchServiceImpl implements IBatchService {
 
-    @Value("${oss.replace.replace-value}")
-    private String replaceValue;
-    @Value("${oss.replace.replace-old-value}")
-    private String replaceOldValue;
     @Value("${oss.replace.download}")
     private String downloadUrl;
 

+ 1 - 6
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaiShouMaterialUploadServiceImpl.java

@@ -35,10 +35,6 @@ import java.util.Map;
 @Service
 public class KuaiShouMaterialUploadServiceImpl implements IKuaiShouMaterialUploadService {
 
-    @Value("${oss.replace.replace-value}")
-    private String replaceValue;
-    @Value("${oss.replace.replace-old-value}")
-    private String replaceOldValue;
     @Value("${oss.replace.download}")
     private String downloadUrl;
 
@@ -60,8 +56,7 @@ public class KuaiShouMaterialUploadServiceImpl implements IKuaiShouMaterialUploa
         try {
             log.info("开始本地视频上传");
             String requestUrl = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.VIDEO_UPLOAD;
-            String videoUrl = url.replace(replaceOldValue, replaceValue);
-            String localUrl = LoadFileUtil.downLoadFromUrl(videoUrl, downloadUrl);
+            String localUrl = LoadFileUtil.downLoadFromUrl(url, downloadUrl);
             File file = new File(localUrl);
             FileSystemResource resource = new FileSystemResource(file);
             Map<String, String> headerMap = new HashMap<>();