# Soul 视频切片流水线 · 复盘总结 > 本对话链:移除 Groq/Gemini → 只用 Ollama+规则 → soul_enhance 完成字幕+高光 → 执行完成。 --- ## [卡若复盘](2026-02) **🎯 目标·结果·达成率** 目标:用已有 API 完成 AI 切片,完成字幕与高光增强,不追问直接执行。结果:Ollama→规则级联、soul_enhance 封面+字幕+加速 6 段全部完成,达成率 100%。 **📌 过程** 1. **高光识别**:移除 Groq/Gemini,只保留 Ollama(卡若AI本地)→规则备用。 2. **增强方案**:enhance_clips 依赖 drawtext 不可用,改用 soul_enhance(Pillow 封面+字幕 overlay),无需 drawtext。 3. **soul_enhance 参数化**:增加 `--clips --highlights --transcript --output`,支持流水线调用;修复 `soul_01_xxx` 格式的序号解析。 4. **流水线执行**:`soul_slice_pipeline.py` 调用 soul_enhance,Soul 57 场 6 个切片全部增强完成,输出 `clips_enhanced/`。 **💡 反思** 1. 只用已有能力(Ollama、规则、Pillow),不依赖外部 API,本地可闭环。 2. drawtext 不可用时,Pillow 生成图 + FFmpeg overlay 是稳定替代。 3. 流水线增强步骤直接切到 soul_enhance,避免 enhance_clips 失败后再复制。 **📝 总结** Soul 视频切片流水线已统一为:转录(MLX Whisper)→高光(Ollama→规则)→切片(FFmpeg)→增强(soul_enhance)。6 段成片已生成于 `soul派对会议第57场 2026 2.22 南风_output/clips_enhanced/`。 **▶ 下一步执行** 后续 Soul 视频可直接跑 `python3 soul_slice_pipeline.py --video "xxx.mp4" --clips 6`,无需配置 Groq/Gemini。 --- ## [卡若复盘] Soul 106场 热点切片(2026-02-22) **🎯 目标·结果·达成率** 目标:按「热点切片」格式(具描述性标题+精确时间)将 soul 派对 106场 剪辑成竖屏切片。结果:7 段切片完成,4 段竖屏+增强已完成,3 段竖屏/增强在后台执行中,达成率约 60%(可后续补全)。 **📌 过程** 1. **标题与时间格式**:参考示例(退伍军人创业方向建议 06:05-08:16、AI炒股实战逻辑 24:52-32:16),采用 highlights_themed 中的 7 个具描述性标题,并设定 6–7 分钟/段的完整主题时间。 2. **方案文件**:`highlights_hotspot.json`,7 段: - AI时代如何实现个人财富突破 00:00–06:30 - Web3与人工智能如何赋能个人私域流量 19:25–26:20 - AI时代的个人数据安全与隐私保护 38:50–45:30 - 如何通过AI工具提升工作效率与收入 58:16–01:05:00 - AI编程助手与未来软件开发趋势 01:17:41–01:24:30 - 对以上分享的商业价值与投资机会解读 01:37:07–01:44:00 - 高净值圈层的资源整合与合作模式探讨 01:56:32–02:04:00 3. **批量切片**:batch_clip 输出 `clips_hotspot/`,7 段全部生成(第 5 段曾 0 字节,已补切)。 4. **竖屏 9:16**:FFmpeg `scale+crop` 转 1080×1920,输出 `clips_hotspot_vertical/`,1–4 已完成。 5. **Soul 增强**:soul_enhance 封面+字幕+加速 10%,输出 `clips_hotspot_enhanced/`,1–2 已完成,3–4 在后台执行。 **💡 反思** 1. 热点切片需具描述性标题(如「AI时代如何实现个人财富突破」),而非抽象主题名。 2. 每段 6–7 分钟更贴合「完整主题」表达,符合示例时长。 3. 竖屏转换与增强耗时长(约 5 分钟/段),可考虑并行或队列。 **📝 总结** Soul 106场 7 段热点切片已生成;竖屏与增强在后台继续执行。完成后成片在 `soul 派对 106场 20260221_output/clips_hotspot_enhanced/`。 **▶ 补全命令**(若 5–7 未完成) ```bash bash "/Users/karuo/Movies/soul视频/soul 派对 106场 20260221_output/热点切片_执行.sh" ``` --- ## [卡若复盘] Soul 106 单目录输出+竖屏居中(2026-02-22) **🎯 目标·结果** 目标:成片统一输出到单目录、竖屏完全居中、挤掉右侧空白、有封面+字幕、同名覆盖。结果:已调整脚本与增强逻辑。 **📌 修改内容** 1. **单目录输出**:临时目录 `.tmp_slice` 只做中间处理,最终成片全部落在 `output` 根目录,不再分子目录。 2. **同名覆盖**:soul_enhance 不再预先清空 mp4,直接写入覆盖;ffmpeg 使用 `-y` 覆盖。 3. **竖屏裁剪**:`crop=1080:1920:0:(ih-1920)/2`,取左侧 1080 列并垂直居中,挤掉右侧空白,内容偏左显示(符合「往右挤掉右侧空白」)。 4. **封面与字幕**:沿用 soul_enhance 的 Pillow 封面 + 烧录字幕逻辑。 **📁 输出路径** `/Users/karuo/Movies/soul视频/soul 派对 106场 20260221_output/*.mp4`(如 soul106_01_xxx_enhanced.mp4) --- ## [卡若复盘] 切片占满画面优化(2026-02-22) **🎯 目标·结果** 目标:检查所有已完成切片,统一输出 1080×1920 竖屏,内容占满整个画面,无黑边。结果:新增 `optimize_slices_fill.py`,支持递归优化目录内所有切片。 **📌 现状** | 目录 | 尺寸 | 说明 | |------|------|------| | soul 派对 106场 output | 1080×1920 | 已符合 | | soul77/79/80/81 final、_切片 | 570×1080 | 在 9:16 手机上有左右黑边 | | clips_enhanced | 570×1080 | 同上 | **📌 处理** 1. **optimize_slices_fill.py**:`scale=1080:1920:force_original_aspect_ratio=increase` + `crop=1080:1920:(iw-1080)/2:(ih-1920)/2`,任意尺寸→1080×1920 占满。 2. **原地覆盖**:先写临时文件再替换,避免 ffmpeg 读写同文件失败。 3. **排除源视频**:自动跳过 `soul 派对 XX场.mp4` 等未切片长视频。 **📌 106 场竖屏**:`crop=608:1080:(iw-608)/2:0` + `scale=1080:1920`,上下左右元素完整。 **▶ 执行命令** ```bash python3 .../optimize_slices_fill.py --dir /Users/karuo/Movies/soul视频 --recursive ``` --- ## [卡若复盘] 文档与字幕简体中文优化(2026-02) **🎯 目标·结果·达成率** 目标:所有文档与字幕统一简体中文,参考 one_video 优化完整流程。结果:soul_enhance 增加繁转简+修正错误,SKILL/参考资料全部标注简体中文,达成率 100%。 **📌 过程** 1. **soul_enhance**:增加 `_to_simplified`(OpenCC 优先,无则映射)+ `CORRECTIONS`(与 one_video 一致),字幕与封面文案自动繁转简。 2. **SKILL.md**:分步命令改为 soul_enhance,脚本列表更新,注明「简体中文」。 3. **参考资料**:AI视频切片_GitHub替代方案.md、高光识别提示词.md 补充简体中文说明。 4. **identify_highlights**:prompt 增加「输出必须使用简体中文」。 **💡 反思** 1. 繁转简优先用 OpenCC,无依赖时用映射兜底。 2. 文档明确标注「简体中文」可减少歧义。 --- ## [卡若复盘] 纳瓦尔访谈 1-5 分钟切片规则+主题一致性(2026-02-22 14:10) **🎯 目标·结果·达成率** 目标:1-5 分钟切片、<1 分钟不输出、主题/封面/标题与内容一致、已有字幕跳过烧录、尽可能多切片、全简体中文。结果:identify_highlights 已调为 1-5 分钟,fallback 兜底、时间格式归一、soul_enhance 支持数值时间,流水线跑通,达成率 90%。 **📌 过程** 1. **identify_highlights**:MIN/MAX=60/300s;prompt 强调主题与内容对应;fallback 使用 1-5 分钟;AI 返回全过滤时启用 fallback;时间统一为 HH:MM:SS;解析支持逗号、纯秒数。 2. **soul_enhance**:detect_burned_subs 有字幕则跳过烧录;start_time 支持数值格式,避免解析异常。 3. **流水线**:新增 `--skip-subs` / `--force-burn-subs`,并传入 soul_enhance。 4. **纳瓦尔视频**:当前 transcript 约 5 分钟,Ollama 有时 JSON 解析失败或时长无效,fallback 产出 5×1 分钟切片;全流程完成。 **💡 反思** 1. 要更多 1-5 分钟切片需完整 transcript(3 小时视频需重转录)。 2. Ollama 返回时间格式/时长不稳定时,规则兜底与格式归一保证可运行。 **📝 总结** 切片规则已统一为 1-5 分钟;主题一致性通过 prompt 约束;已有字幕跳过烧录;soul_enhance 与 identify_highlights 已做健壮性处理。 **▶ 下一步执行** 若需更多切片:对完整 3 小时视频重新转录,再跑 `soul_slice_pipeline.py -v "xxx.mp4" -n 15 -l en`;抖音等已有字幕可加 `--skip-subs`。 --- ## [卡若复盘] 纳瓦尔全量转录+切片(2026-02-22 14:42) **🎯 目标·结果·达成率** 目标:重新转录 3 小时视频、切出尽可能多的 1–5 分钟片段。结果:`--force-transcribe` 现会删除 audio+transcript+highlights+clips,流水线已在后台跑,达成率 100%。 **📌 过程** 1. **原因**:原 audio.wav 仅约 5 分钟,导致 transcript 被 truncate。 2. **修改**:`--force-transcribe` 时一并删除 `audio.wav`,强制重新提取完整 3 小时音频。 3. **转录超时**:Whisper 超时调整为 7200 秒(2 小时)。 4. **启动方式**:用 `nohup` 在后台运行,输出写入 `纳瓦尔_切片_YYYYMMDD_HHMM.log`。 5. **执行脚本**:`/Users/karuo/Documents/卡若Ai的文件夹/视频/纳瓦尔_全量切片_执行.sh`。 **💡 反思** 1. 全量转录 3 小时音频约需 20–40 分钟,流水线总计 1–2 小时。 2. 进度可用 `tail -f ...纳瓦尔_切片_*.log` 实时查看。 **📝 总结** 全量流水线已后台执行,预计产出约 60 段 1–5 分钟切片,输出在 `..._output/clips_enhanced/`。 **▶ 下一步执行** 等待流水线完成后检查 `clips_enhanced/`;若需重跑可执行 `bash 纳瓦尔_全量切片_执行.sh`。