实用指南
视频解说导出剪映 / CapCut 后,怎样继续精剪?
源码核对日期 2026-09-13
想在剪映或 CapCut 里继续改一条做好的解说,把现有的 timeline.json 导成可编辑草稿,不要拿渲染好的 MP4 当素材。Video Recap Skills 的独立导出器把原片(带原声)、旁白和可选配乐分别放在轨道上,字幕作为文本,并把媒体打包,草稿搬走后仍能打开。它不重跑 ASR、视觉理解或 TTS,也不重新渲染 MP4。请用你实际使用的编辑器版本打开。下面的排练示例比较两种精剪,包括移动旁白时还要一起改什么。
开始之前
- 本地仓库或已安装的 skill 目录中有
skills/video-assemble/scripts/export_jianying.py,已准备 Python、ffprobe、生成完毕的timeline.json,且媒体引用可访问。替换下方/ABS/占位路径。尚无解说时间轴时,先从视频解说完整流程开始;只有成片 MP4,不会自动重建分开的旁白和字幕轨道。 - 若尚未合成,先准备源视频与
work_dir/tts_meta.json。本地合成需要 ffmpeg;烧录字幕需要 libass/subtitles filter。MiMo 提供远程 ASR/VLM/默认 TTS;可选 Fish Audio 只替换 TTS。 - 能用于实际测试草稿的剪映或 CapCut 桌面安装。草稿是可选附加导出,不是渲染解说 MP4 的必要步骤。
- 先决定修改范围:要留下的意思、必须听见的原话或看见的动作,以及保留现有配音还是另外申请新配音。若时间轴明确要求倒放却没有已备好的倒放文件,导出可以调用本地 ffmpeg 生成并打包该素材;因此不是“绝不处理媒体”的承诺。
操作步骤
- 区分仅导出与重新合成 已有完整
timeline.json时,用下方独立命令导出当前剪辑,不重跑合成。尚未合成时,另一条assemble.py流程也能通过--export-jianying --jianying-out /ABS/drafts附带导出草稿,但仍会执行正常合成工作。 - 保留正确源视频 cut 模式下,在生成
timeline.json的assemble.py命令中传入--source-video /ABS/original.mp4,让时间轴保留真实原片区间。之后独立导出器只读取这份已完成的时间轴,不接受--source-video参数。 - 导出已有剪辑,不用压平的成片冒充原素材 对真实时间轴运行独立命令,读取返回的
draft_dir与警告。这条路径读取时间轴及引用媒体,不调用 MiMo/Fish,也不重新渲染整部解说。原素材缺失时,不要因为画面相似就改用result.mp4:里面可能已经混入旁白并烧录字幕。 - 完整保留媒体包 默认开启媒体打包。移动时复制整个输出目录,包括
Resources/local/。只有编辑器仍能访问外部媒体路径时才使用独立导出器的--no-bundle-media。注意读取警告:缺失媒体不会被记为已成功打包。 - 在目标编辑器中打开 使用已安装版本支持的本地草稿打开或导入方式,保持返回的草稿目录完整,并检查媒体、字幕和音轨是否可用;不同版本的菜单与草稿位置可能不同。
- 看清可编辑元素里到底是什么 常规导出的解说里,视频片段带着原声与音量关键帧,导出器不承诺另外拆出干净的人声轨。旁白、可选 BGM 是独立音频段,解说字幕是文本段。改字幕只改显示文字,不会改 WAV 里说的话;原画面已有的硬字幕也不能靠删除导出的文本段消失。
- 移动解释,不剪掉它所依赖的证据 先确定观众必须听见或看见什么,再缩短。排练示例保留一次没合上的起拍、原话、可见手势和下一次起拍;可以把解说移到结果后,也可以去掉解说做原声主导的短版。不要为了省两秒剪掉手势,却仍声称成片展示了回应如何跟随它。更前面的声音分工问题,见原声与旁白指南。
- 让配音、字幕与音量变化一起对齐 移动已有旁白时,一起移动它对应的字幕提示,并检查旧位置、新位置的原声音量和配乐关键帧。导出器写出这些位置后,不会在编辑器里持续自动重算压低原声的窗口。真要改说话内容,应准备作者接受的新录音并重排时长,而不是只改字幕或切掉旧录音的尾字。
- 确定哪一版负责最终交付 把未修改的导出留作起点,用目标编辑器支持的复制/版本方式建立精剪版。这个导出器读取
timeline.json,不会把桌面工程里的修改反向回写到该时间轴、SRT、WAV 或之前的 MP4。最终选择在编辑器中导出成片,或先把修改决定明确带回流程输入再另行渲染;重导出旧时间轴不会恢复编辑器里的修改。
示例
示例
从已有时间轴导出(替换所有 /ABS 路径): python3 /ABS/video-recap-skills/skills/video-assemble/scripts/export_jianying.py \ /ABS/work/timeline.json \ --out-dir /ABS/drafts \ --name rehearsal_base
读取返回的 draft_dir 与全部警告。 把完整草稿目录与其中的 Resources/local/ 媒体一起保留。
原创编辑练习——《第二次起拍》 以下是虚构的画面描述与剪辑位置,不是真实视频、已导出的工程或 TTS 实测结果。 所有时间仅用于说明剪辑关系,不能当作实际录音长度。真实素材确实包含这些拍点时 才采用相应方案,不要为了套例子补造不存在的镜头。
观众问题:两次起拍之间,什么发生了变化? 这份虚构素材里,吉他先于其他人进入,大家停下;随后有人发出指令、抬手, 第二次起拍合在一起。它没有证明整场排练已完成、整首曲子已熟练,也没证明 第一次失误究竟出于谁的什么心理。
原片时间 → 剪后时间 | 画面与原声 00:12–00:16 → 00:00–00:04 | 第一次起拍没合上,大家停下 00:22–00:26 → 00:04–00:08 | “看我抬手,再进。” 00:26–00:28 → 00:08–00:10 | 领拍的人抬手,其他人等着 00:28–00:34 → 00:10–00:16 | 第二次一起进入,奏完短乐句并留足必要余音 00:34–00:38 → 00:16–00:20 | 乐句及其余音已结束,手放下,只余现场底声
原片00:16–00:22这段已从示例剪辑中省略。下文的编辑操作都用右边的剪后时钟。 手势和第二次起拍保持原片中的相邻顺序,没有拿另一次尝试的反应镜头来替代。
给示例草稿故意放入一个问题: - 一段旁白录音及其对应字幕位于剪后00:05–00:09。 - 旁白是:“抬手以后,第二次起拍合在了一起。” - 只为讲清移动关系,假设这段已有完整录音长四秒;这不是实测语速,也不是 要求新 TTS 硬塞进去的规定时长。 - 它盖住部分原话,视频片段的原声音量关键帧也压低了这个区域。 只移动字幕,不会让那句指令重新听清。
A——保留一句解释,但放到结果之后(示意20秒版) 1.保留第一次没合上的起拍、完整指令、抬手与第二次短句的先后关系。 2.把完整四秒旁白从00:05–00:09移到00:16–00:20,对应字幕也整体后移十一秒。 先让观众听到结果,再回看一句,不在发出指令时抢话。 3.检查视频片段的原声音量关键帧:按需解除指令处已经过时的压低,保住两次 起拍的可听性,并处理新旁白位置的压低/恢复;有配乐时也检查那个位置。 移动一段配音,不等于另一个片段上的关键帧会跟着搬家。 4.真实录音或原声短句比示意窗口长,就扩展或另选剪法;不要切尾字、假设有 静默空隙,或为了凑“20秒”删掉手势。尾镜也必须真的有可用的收束过程。
B——让这次重来自己说话(示意16秒的编辑器短版) 1.删掉这段新增旁白及其对应的解说字幕,不盲目清空所有文本。 若原声对白字幕已经存在,只保留与实际可听内容相符的部分;常规解说文本轨 不等于已经为全部原声对白做好了可编辑字幕。 2.删的是00:16–00:20尾段,不是指令,也不是00:08–00:10的手势。 3.解除不再需要的原声压低,按正常速度听两次起拍。配乐遮住比较时,降低或 去掉配乐,而不是把所有轨道一起拉响。实际结束点要在第二次乐句完整奏完、 余音有足够收束之后,不能只照示例秒数硬切。
A 多留一句事后解释;B 让可听的比较承担更多叙事。两者都不足以支持 “他们终于练熟了整首曲子”这样的标题;更窄的编辑标题可以是“同一个开头,再来一次”。 这是作者选的两种剪法,不是导出器内置预设,也没有提供已生成的配音或成片。
如果错的是说话内容,而不只是位置: 假设已有录音说“他们终于练熟了整首曲子”,只把字幕改成较窄的判断,观众仍会 听到过度结论。应连同字幕去掉这段录音,或另外准备获准的新录音,再按真实时长 放置。仅导出草稿的命令不会替你合成新配音。
交接说明——普通编辑笔记,不是必需文件格式或新增功能: 选定版本:A 或 B,记下选择,不把两版同时当成最终稿。 保留拍点:第一次停下 → 完整指令 → 抬手 → 第二次短句。 修改元素:旁白移动/删除、对应字幕、原声/配乐音量。 当前母版:点名的编辑器工程;最初导出保留不动。 最终交付:从选定精剪版导出的成片,不是之前那份流程 MP4。 实际素材仍要判断:原话是否完整、手势是否可见、短句是否收住,目标编辑器能否 正确打开媒体包。
再次运行独立导出器,只会再次读取它的输入时间轴。换一个输出目录名,不会自动 带上编辑器工程中的修改。完整保留媒体包,并注明最后真正选中了哪一版。
预期文件
- 返回的
draft_dir包含draft_content.json、draft_info.json与draft_meta_info.json。 - 打包媒体位于
Resources/local/video/、Resources/local/audio/、Resources/local/image/;缺失文件保留为带警告的外部引用。 - 不会覆盖非空输出目录,导出器会选择带编号的相邻目录。草稿导出与已合成的 MP4、字幕和
timeline.json相互独立。 - 编辑器精剪版与流程快照是两份不同交付。改过的字幕不会替换旁白音频;未修改的
timeline.json再导出一次,也不会包含编辑器里的修订。选定工程和它仍引用的媒体要一起保留。
验证结果与边界
- 检查三份草稿 JSON 与引用媒体,再在实际目标桌面/地区版本中测试打开。Schema 模板版本或历史 smoke test 不等于所有剪映/CapCut 版本都兼容。
- 针对排练练习,指令、手势、第二次起拍要保持顺序,并在需要处听得清。既看新旁白位置,也看旧位置的原声音量关键帧;把实际说的话与显示字幕对照。示意的20/16秒两版不是实测交付时长要求。
- 检查旁白尾字、音画同步、原声交接、BGM 音量、字幕断行与剪点。草稿引用源媒体,原素材已有的硬字幕可能仍在,需要时应遮罩。
- 只运行导出 smoke test 验证的是本地草稿契约,不证明已执行远程生成、桌面编辑器成功打开或最终成片正确。