From 25a703840328fdbac6b5f9f2173e84ce95e4837b Mon Sep 17 00:00:00 2001
From: shenrongliang <1328040932@qq.com>
Date: 星期二, 15 四月 2025 15:01:48 +0800
Subject: [PATCH] 视频合成无人像展示

---
 yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/coursemedia/CourseMediaServiceUtil.java |   16 ++++++++++------
 1 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/coursemedia/CourseMediaServiceUtil.java b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/coursemedia/CourseMediaServiceUtil.java
index d36104f..041fc22 100644
--- a/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/coursemedia/CourseMediaServiceUtil.java
+++ b/yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/coursemedia/CourseMediaServiceUtil.java
@@ -147,19 +147,20 @@
             //ffmpeg -i 2.png -i 1.mp4 -filter_complex "[0:v]scale=w=ceil(iw/2)*2:h=ceil(ih/2)*2[bg];[1:v]scale=iw/2:ih/2[v1];[bg][v1]overlay=x=0:y=H-h" output.mp4
             //鍒ゆ柇鏄惁鏈変汉鍍�
             ProcessBuilder builder = null;
-            if("1".equals(scene.getHasPerson())){
+            if ("1".equals(scene.getHasPerson())) {
+                // 褰撴湁闇�瑕佹坊鍔犱汉鍍忔椂
                 builder = new ProcessBuilder(
                         "ffmpeg",
-                        "-i", cover1,
-                        "-i", cover,
-                        "-i", substring1,
+                        "-i", cover1, // 鑳屾櫙鍥�
+                        "-i", cover,  // PPT鍐呭
+                        "-i", substring1, // 浜哄儚瑙嗛
                         "-filter_complex",
                         "[0:v]scale=" + Math.round(scene.getBackground().getWidth()) + ":" + Math.round(scene.getBackground().getHeight()) + "[bg];" +
                                 "[1:v]scale=" + Math.round(scene.getComponents().get(1).getWidth()) + ":" + Math.round(scene.getComponents().get(1).getHeight()) + "[v1];" +
                                 "[bg][v1]overlay=x=" + Math.round(scene.getComponents().get(1).getMarginLeft()) + ":y=" + Math.round(scene.getComponents().get(1).getTop()) + "[img];" +
                                 "[2:v]scale=" + Math.round(scene.getComponents().get(0).getWidth()) + ":" + Math.round(scene.getComponents().get(0).getHeight()) + "[v2];" +
                                 "[img][v2]overlay=x=" + Math.round(scene.getComponents().get(0).getMarginLeft()) + ":y=" + Math.round(scene.getComponents().get(0).getTop()),
-                        newFileName2
+                        newFileName2 // 杈撳嚭鏂囦欢鍚�
                 );
             } else if ("2".equals(scene.getHasPerson())) {
                 // 褰撴病鏈変汉鍍忔椂锛岃棰戞斁鍦� cover 鐨勪笅灞�
@@ -167,10 +168,13 @@
                         "ffmpeg",
                         "-i", cover1, // 鑳屾櫙鍥�
                         "-i", substring1, // 瑙嗛
+                        "-i", cover, // PPT鍐呭
                         "-filter_complex",
                         "[0:v]scale=" + Math.round(scene.getBackground().getWidth()) + ":" + Math.round(scene.getBackground().getHeight()) + "[bg];" +
                                 "[1:v]scale=" + Math.round(scene.getComponents().get(0).getWidth()) + ":" + Math.round(scene.getComponents().get(0).getHeight()) + "[v1];" +
-                                "[bg][v1]overlay=x=" + Math.round(scene.getComponents().get(0).getMarginLeft()) + ":y=" + Math.round(scene.getComponents().get(0).getTop()),
+                                "[bg][v1]overlay=x=" + Math.round(scene.getComponents().get(0).getMarginLeft()) + ":y=" + Math.round(scene.getComponents().get(0).getTop()) + "[img];" +
+                                "[2:v]scale=" + Math.round(scene.getComponents().get(1).getWidth()) + ":" + Math.round(scene.getComponents().get(1).getHeight()) + "[v2];" +
+                                "[img][v2]overlay=x=" + Math.round(scene.getComponents().get(1).getMarginLeft()) + ":y=" + Math.round(scene.getComponents().get(1).getTop()),
                         newFileName2 // 杈撳嚭鏂囦欢鍚�
                 );
             }

--
Gitblit v1.9.3