| 模块名 (文件) | 新职责 (Role) | 核心功能 (Functions) |
|---|---|---|
index.cjs |
入口/IPC网关 | 1. 启动Electron应用 2. 注册 IPC 监听 ( generator:run, generator:reload)3. 将请求转发给 GeneratorService |
services/generator-service.cjs |
业务外观 (Facade) | 1. 统一入口:接收前端请求参数 2. 参数校验:检查输入视频、输出路径 3. 流程控制:根据模式决定调用 PipelineManager (新) 或 SimpleGenerator (旧)4. 进度反馈:统一向前端发送进度事件 |
services/pipeline-manager.cjs |
流水线调度器 | 1. 任务切分:将大列表拆分为 Group (每组3个)2. 并发控制:限制同时运行的组数 (Max 2) 3. 错误重试:组失败时自动重试 4. 生命周期管理:初始化 -> 预处理 -> 渲染 -> 拼接 -> 清理 |
services/map-reduce-executor.cjs |
算法执行器 | 1. 热重载核心:动态加载 scripts/mapreduce-refactor.js2. Task 执行:调用脚本生成 FFmpeg 命令并执行 3. Reduce 执行:调用脚本生成 Concat 命令并执行 |
services/video-processor.cjs |
视频/音频处理 | 1. 元数据获取:封装 ffprobe,智能获取时长/分辨率2. 预处理:标准化视频 (统一编码/分辨率) 3. 下载:调用 yt-dlp 下载视频 |
utils/path-manager.cjs |
路径管家 | 1. 安全临时目录:解决中文路径乱码,统一管理 C:\rdg-temp2. 输出路径修复:自动补全 .mp4 后缀3. 清理策略:提供安全的临时文件清理方法 (支持调试模式保留) |
utils/ffmpeg-helper.cjs |
FFmpeg工具箱 | 1. 环境配置:统一获取 ffmpeg-static 路径2. 命令执行:封装 spawn,统一日志输出和错误处理3. 进程管理:记录 PID,支持强制终止所有进程 |
| 文件 | 职责 | 说明 |
|---|---|---|
scripts/mapreduce-refactor.js |
纯算法核心 | 1. CalculateTasks:根据 clips 计算切片时间点 (Head/Body/Tail) 2. GenerateCommand:生成具体的 FFmpeg 滤镜链 3. 纯函数:不涉及任何 IO 操作,只返回字符串/对象,确保热重载绝对安全 |
- 彻底解耦:
pipeline不再反向调用generator,而是调用下层服务 (executor,processor)。 - 路径安全:所有临时文件操作收敛到
path-manager.cjs,从根本上杜绝中文路径乱码。 - 算法热重载:
executor专门负责加载scripts/,修改算法脚本只需保存即可生效,无需重启软件。 - 清晰的调试:中间文件保留逻辑在
path-manager中统一控制,不再散落在各处。