shenrongliang
2025-05-26 e47692e7a147f98c298429a2eaa6a4085d6f795d
修改查询数字人类型,视频合成层级
已修改2个文件
15 ■■■■ 文件已修改
yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/query/LambdaQueryWrapperX.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/coursemedia/CourseMediaServiceUtil.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/query/LambdaQueryWrapperX.java
@@ -5,6 +5,7 @@
import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.github.xiaoymin.knife4j.core.util.StrUtil;
import org.springframework.util.StringUtils;
import java.util.Collection;
@@ -40,8 +41,8 @@
    }
    public LambdaQueryWrapperX<T> eqIfPresent(SFunction<T, ?> column, Object val) {
        if (ObjectUtil.isNotEmpty(val)) {
            return (LambdaQueryWrapperX<T>) super.eq(column, val);
        if (val != null && !(val instanceof String && StrUtil.isBlank((String) val))) {
            this.eq(column, val);
        }
        return this;
    }
yudao-module-digitalcourse/yudao-module-digitalcourse-biz/src/main/java/cn/iocoder/yudao/module/digitalcourse/service/coursemedia/CourseMediaServiceUtil.java
@@ -171,7 +171,7 @@
                builder = new ProcessBuilder(
                        "ffmpeg",
                        "-i", cover1, // 背景图 1
                        "-i", substring1, // 视频
                        "-i", substring1, // 视频(含音频)
                        "-i", cover1, // 背景图 2
                        "-i", cover, // PPT内容
                        "-filter_complex",
@@ -181,7 +181,13 @@
                                "[2:v]scale=" + Math.round(scene.getBackground().getWidth()) + ":" + Math.round(scene.getBackground().getHeight()) + "[bg2];" +
                                "[img1][bg2]overlay=shortest=1[v2];" +
                                "[3:v]scale=" + Math.round(scene.getComponents().get(1).getWidth()) + ":" + Math.round(scene.getComponents().get(1).getHeight()) + "[v3];" +
                                "[v2][v3]overlay=x=" + Math.round(scene.getComponents().get(1).getMarginLeft()) + ":y=" + Math.round(scene.getComponents().get(1).getTop()),
                                "[v2][v3]overlay=x=" + Math.round(scene.getComponents().get(1).getMarginLeft()) + ":y=" + Math.round(scene.getComponents().get(1).getTop()) + "[outv]",
                        "-map", "[outv]",
                        "-map", "1:a?",   // 添加音频流(如果存在)
                        "-c:v", "libx264", // 视频编码格式(可选但推荐)
                        "-c:a", "aac",     // 音频编码格式(可选但推荐)
                        "-shortest",       // 让输出长度与最短流一致,避免黑屏或静音延长
                        "-y",              // 覆盖输出文件
                        newFileName2 // 输出文件名
                );
            }