From 91a1c9bf1fc1e7b711655d987cfab54445362ef6 Mon Sep 17 00:00:00 2001
From: 康鲁杰 <60095866+KangLujie@users.noreply.github.com>
Date: 星期一, 31 三月 2025 15:00:46 +0800
Subject: [PATCH] 扣视频

---
 yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/dataobject/digitalhumans/DigitalHumansDO.java             |    1 +
 yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/digitalhumans/vo/DigitalHumansSaveReqVO.java |    3 ++-
 yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/digitalhumans/vo/DigitalHumansTrailVO.java   |    1 +
 yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/digitalhumans/DigitalHumansServiceImpl.java           |    8 ++++++++
 yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/digitalhumans/DigitalHumansServiceUtil.java           |   16 +++++++++++-----
 5 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/digitalhumans/vo/DigitalHumansSaveReqVO.java b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/digitalhumans/vo/DigitalHumansSaveReqVO.java
index d8c8302..907a260 100644
--- a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/digitalhumans/vo/DigitalHumansSaveReqVO.java
+++ b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/digitalhumans/vo/DigitalHumansSaveReqVO.java
@@ -69,5 +69,6 @@
     private String fixPictureUrl;
     //淇瑙嗛
     private String fixVideoUrl;
-
+    //鏄惁涓洪�忔槑鑳屾櫙瑙嗛 1鏄� 2鍚�
+    private Integer isTransparent;
 }
diff --git a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/digitalhumans/vo/DigitalHumansTrailVO.java b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/digitalhumans/vo/DigitalHumansTrailVO.java
index 1fd4781..d903ae3 100644
--- a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/digitalhumans/vo/DigitalHumansTrailVO.java
+++ b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/controller/admin/digitalhumans/vo/DigitalHumansTrailVO.java
@@ -14,5 +14,6 @@
     private String useModel;
     private String accountId;
     private String videoUrl;
+    private Integer isTransparent;
 
 }
diff --git a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/dataobject/digitalhumans/DigitalHumansDO.java b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/dataobject/digitalhumans/DigitalHumansDO.java
index 89488d7..6e8711f 100644
--- a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/dataobject/digitalhumans/DigitalHumansDO.java
+++ b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/dal/dataobject/digitalhumans/DigitalHumansDO.java
@@ -134,5 +134,6 @@
 
     private String referenceAudioText;
     private String asrFormatAudioUrl;
+    private Integer isTransparent;
 
 }
diff --git a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/digitalhumans/DigitalHumansServiceImpl.java b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/digitalhumans/DigitalHumansServiceImpl.java
index 7ff69ea..44f12c7 100644
--- a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/digitalhumans/DigitalHumansServiceImpl.java
+++ b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/digitalhumans/DigitalHumansServiceImpl.java
@@ -60,6 +60,10 @@
         DigitalHumansDO updateObj = BeanUtils.toBean(updateReqVO, DigitalHumansDO.class);
         digitalHumansMapper.updateById(updateObj);
 
+        if (updateObj.getStatus() == 2){
+            //鍙楃悊鎵h棰�
+            digitalHumansServiceUtil.remoteHeyGemMatting(transferVO(updateObj.getId()));
+        }
         //寮傛璁粌妯″瀷
         if (updateObj.getStatus() == 3){
             digitalHumansServiceUtil.remoteHeyGemTrain(transferVO(updateObj.getId()));
@@ -72,6 +76,10 @@
         DigitalHumansDO digitalHumans = this.getDigitalHumans(id);
         DigitalHumansTrailVO build = DigitalHumansTrailVO.builder().build();
         if (StrUtil.isBlank(digitalHumans.getVideoUrl())) build.setVideoUrl(digitalHumans.getVideoUrl());
+        if (StrUtil.isBlank(digitalHumans.getFixVideoUrl())) build.setFixVideoUrl(digitalHumans.getFixVideoUrl());
+        if (digitalHumans.getIsTransparent() != null) {
+            build.setIsTransparent(digitalHumans.getIsTransparent());
+        }
         BeanUtils.copyProperties(digitalHumans, build);
         build.setAccountId(digitalHumans.getCreator());
         return build;
diff --git a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/digitalhumans/DigitalHumansServiceUtil.java b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/digitalhumans/DigitalHumansServiceUtil.java
index 5098178..0e3b4ce 100644
--- a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/digitalhumans/DigitalHumansServiceUtil.java
+++ b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/digitalhumans/DigitalHumansServiceUtil.java
@@ -60,6 +60,10 @@
     private ConfigApi configApi;
     @Resource
     private FileApi fileApi;
+
+    public void remoteHeyGemMatting(DigitalHumansTrailVO digitalHumansTrailVO) {
+        System.out.println(digitalHumansTrailVO);
+    }
     @Async
     public void remoteHeyGemTrain(DigitalHumansTrailVO digitalHumansTrailVo){
         String origin_audio = configApi.getConfigValueByKey(HEYGEM_VOICE_DATA) + "/origin_audio";
@@ -147,9 +151,8 @@
                     throw new RuntimeException(e);
                 }
                 String picFilePath = Paths.get(pngPath , picFileName).toString();
-                int frameTime = 3; // 鎴彇绗� 5 绉掔殑鐢婚潰
 
-                extractFrame(modelFilePath, picFilePath, frameTime);
+                extractFrame(modelFilePath, picFilePath);
                 byte[] fileContent = Files.readAllBytes(Paths.get(picFilePath)); // 璇诲彇鏂囦欢鍐呭
 
                 String fileUrl = fileApi.createFile(fileContent);
@@ -220,10 +223,11 @@
      * @param outputImagePath 杈撳嚭鍥剧墖璺緞
      * @param frameTime 鎴彇鐨勬椂闂寸偣
      */
-    public static void extractFrame(String videoPath, String outputImagePath, int frameTime) {
+    public static void extractFrame(String videoPath, String outputImagePath) {
         ProcessBuilder processBuilder = new ProcessBuilder(
-                "ffmpeg","-i", videoPath,"-ss", String.valueOf(frameTime),
-                "-vframes", "1",
+                "ffmpeg", "-i", videoPath,
+                "-vf", "select=eq(n\\,0)", // 閫夋嫨绗�0甯�
+                "-vsync", "vfr", // 闃叉閲嶅甯�
                 "-q:v", "2",
                 outputImagePath
         );
@@ -390,4 +394,6 @@
         }
 
     }
+
+
 }

--
Gitblit v1.9.3