ZenStory AI

实用指南

怎样把本地视频做成有画面与原声依据的中文解说

源码核对日期 2026-09-13

Video Recap Skills 把中文视频解说拆成理解、编导、写稿、配音与合成。先从你有权使用的本地视频提取场景、对白和画面证据,再确定一条观众承诺与主视角,只写素材或已提供背景能够支持的内容。最终可交付解说 MP4,也可另导出可编辑草稿,而不是给原片随意铺一层摘要。 原片不必已经有旁白:下方用原创无对白素材比较两种叙事角度,再写一小段中文解说,不把画面上写出的承诺当成已经验证的结果。 另一个前半段素材变体说明:只有起初尝试时,应补要结尾证据,或提出范围更窄的观察稿,不默默改掉已确认方向。

所属项目 Video Recap Skills在 GitHub 查看源码

开始之前

  • 先在受支持的 Agent 宿主中安装并配置 Video Recap Skills;按项目页选择当前宿主的安装方式,再用该宿主打开获准视频所在工作区。下文手工命令中的 /ABS/video-recap-skills,指已安装 skill 仓库的绝对路径,不是系统自带目录。
  • 一个你拥有或获准处理的本地 .mp4、.mov、.mkv 或 .webm,以及 Python 3.10+、PATH 中的 ffmpeg 和足够的中间文件空间。烧录字幕需要 ffmpeg 的 libass/subtitles filter。
  • 远程 ASR、VLM 与默认 TTS 需要 Xiaomi MiMo API key。Fish Audio 只能替换 TTS,并需要独立 key;ASR/VLM 仍用 MiMo。这不是全离线流程,发送获准素材前应查看服务商当前的隐私、地区与计费条款。

操作步骤

  1. 先选成片形态 主入口是在已配置宿主中调用安装好的 video-recap skill(宿主若暴露该 slash 名,则用 /video-recap),再提交自然语言简报。原片时间线保持完整、只在合适位置加旁白用 full;长素材要收成短故事用 cut,它先剪片,再按剪后时间轴写稿。说明受众、时长、背景、字幕和必须保留的素材。
  2. 建立视听证据索引 理解阶段检测场景、抽取代表帧、转写对白、寻找静音窗,并融合为 timeline_fusion.json 与 agent_narration_brief.md。它负责观察,不负责编故事:事实与推断分开,证据不足就保留不确定。脚本优先入口:python3 /ABS/video-recap-skills/skills/video-understanding/scripts/understand.py /ABS/input.mp4 --work-dir /ABS/work。 没有原始旁白,不等于没有人物对白:有人说话时仍应保留对白证据。确无对白的素材,理解脚本支持 --skip-asr;它跳过转写,不跳过远程视觉理解,也不是把原声静音。转写为空不意味着可以编造台词或动机。
  3. 分清看见的事与画面中的主张 分别记录可见动作或可读文字、背景由谁提供,以及尚不知道什么。卡片写着“十秒展开”,只能证明卡片作出了这个承诺,不证明演示已经达标。指向一个物件,不足以判定人物职业、内心或“故意拆穿别人”的动机。关键画面细节要回看原片,VLM 笔记也可能漏看或看错。下方的证据笔记是虚构教学材料,不是实际模型观察结果。
  4. 先定角度,再写开场 阅读 brief、contact sheet、frame facts 与 ASR,确定观众承诺、POV、戏剧问题、情绪终点和暂缓揭示的信息。首次创作比较可成立的故事结构;用户已给方向时忠实落实。把选定主线和“发生了什么变化”的 beats 写进 recap_story_plan.json。 比较的是素材能支持的角度。下方既可跟随承诺的改写,也可跟随让演示继续的可见动作;两者都不能直接写成“骗局被揭穿”。缺少后续结果时,应先指出缺口,不替素材补结局。可以提出较窄的观众承诺或说明边界;方向已固定时,替换前应由创作者决定。
  5. 分配画面、原声与旁白 在 visual_audio_board.json 中为每个 beat 记录画面任务、关键反应或表演、入出点理由、原声锚点和 audio_owner。强对白、动作声或沉默可以独占一拍,不必强铺旁白。cut 模式先写 clip_plan.json;edited_source.mp4 生成后,再看剪后故事板并按输出时间写稿。
  6. 写有证据的中文解说 只有一段旁白承担 context、causal_link、foreshadow、interpretation 或 transition 时才写。画面已经说清楚的事不要复述。人物名、动机、关系和结果必须来自画面、ASR、可靠背景或用户上下文,不能把背景资料伪装成当前镜头事实。每段写成可连续朗读的完整意思,并保住原声句界。
  7. 短审文案,再配音合成 复核每个 beat 是否改变认知、权力、目标、关系、情绪或风险,只听声音能否懂主线,以及有没有无依据断言。想在 TTS 前人工审阅,就走阶段入口:video-understanding 后调用 video-script,检查计划与旁白,再执行 python3 /ABS/video-recap-skills/skills/video-script/scripts/validate.py --work-dir /ABS/work --mode full;通过后才运行各 skill 目录中的 voiceover.py 与 assemble.py。cut 的输出时间轴校验由编排器选择对应模式。
  8. 从真实产物继续 通常由已安装 skill 处理内部交接。若要用脚本明确控制 cut 流程,先执行 python3 /ABS/video-recap-skills/skills/video-recap/scripts/recap.py /ABS/input.mp4 --work-dir /ABS/work --edit-mode cut --target-duration 6m。它在分析后退出,把产物交给 Agent/写稿阶段;这不表示默认流程会请求人工批准。所需 clip plan 或 narration 写好后原样重跑该命令,manifest 会拒绝不匹配的源视频或设置。若选择了阶段审阅,就先保持停止。已有 timeline.json 后再看草稿导出指南

示例

示例

若宿主把已安装 skill 暴露为这个 slash 名(否则在宿主中选择或点名 video-recap),下面是原创建议简报,不是已记录输出、基准结果或执行过的服务商调用。路径与时间戳只是示意占位,不是来自真实文件的证据:

/video-recap 把 /ABS/interview.mov 用 cut 模式做成约六分钟中文解说。我已获准使用录像。让观众看清嘉宾自信的发布承诺怎样在演示失败后变化。失败前跟随嘉宾视角,之后转向工程师反应。完整保留 18:40–19:05 原声,不铺旁白。只使用可见动作、转写对白和我的背景;身份不确定就标明。先建立证据索引与故事/声音方案,再写简洁口语。成片烧录字幕,并保留 timeline.json 以便之后导出草稿。

原创编辑示例——没有对白的展架演示 这是另一个虚构教学案例,不是上方的访谈文件,不是 VLM/ASR 结果,也不是已完成的解说。这里没有源视频、实测时长、生成配音或可导入 JSON。A–E 只是编辑标签,不是时间戳或必填字段。

创作者提供的背景:物件是一副折叠展架。未另外提供人物姓名、职业、关系、产品规格或前史。示意素材没有旁白、没有对白,但仍有环境声和扣件声;这些原声不是等待转写的台词。

按原片顺序记录证据 A. 人物甲把写着“十秒展开”的卡片放在收拢的展架旁。它建立的是书面承诺,不是实测成绩。 B. 甲拉了两次,展架没有展开。不能据此诊断“展架坏了”,也不能说甲早就知道会失败。 C. 人物乙指向仍扣着的运输带,甲解开扣件。指向动作可见;乙是工程师、上司,或有意揭短,都尚未成立。 D. 与 C 连续的同一镜头中,甲随后把展架打开。素材没有一轮完整、重新计时并证实十秒承诺的尝试。它展示这一次的先后过程,不是通用故障诊断或产品测试。 E. 甲在卡片上划掉“十秒”,写上“先解运输带,再展开”。可确认文字被改写,不能据此读出甲到底羞愧、愤怒还是松了一口气。

两个有依据的叙事角度 1. 跟随甲与卡片:一句速度承诺,怎样变成一个准备步骤?开头保留 A,结尾保留 E,用 B–D 连接其间发生的事。兑现的是可见承诺的变化,不是对人物品行下判词。 2. 跟随乙指出的细节:这次卡住的演示,经过哪个可见动作继续下去?重点保留运输带尚扣着、解扣、随后展开的顺序。这可以突出操作过程,不意味着已经给出完整说明书或证明产品普遍可靠。 本次编辑简报选 1:卡片前后变化,让结尾有具体答案。2 仍是可选方案,不是同一句钩子的较差措辞。“专家当场揭穿蓄意骗局”则不是第三个有依据的角度,它额外编出了职业、意图与指控。

一版简短中文稿 开场,围绕 A,提出结尾会回答的问题: “先记住卡片上的‘十秒’。演示结束时,再看这个承诺留下了什么。”

中段 B–D,不另加一句。让未能展开、指向、解扣与展开的顺序可读,不逐一口播每个手部动作,也不把扣件声替换成虚构对白。本剪法保留 C 与 D 的连续过程,不剪掉两者之间是否另有操作的依据。

结尾,在 E 之后,分清已见结果与未验证的承诺: “现在卡片写的是‘先解运输带,再展开’,原来的‘十秒’被划掉了。十秒到底能不能做到,素材并没有重新计时的结果。”

开场引导观众留意 E 确实改写的承诺;结尾说明素材仍未证明什么。中间不必每个动作都配一句话。这里没有认可的时间窗口或朗读时长:它是文案与编辑方案,不是 narration.json,也不是六分钟完整成稿。

容易写出、但没有依据的版本 “他明知展架坏了还在吹嘘,工程师当场拆穿骗局,修好以后终于兑现十秒承诺。”A–E 没有证明知情欺骗、工程师身份、修理行为或成功计时。把句子前面加上“也许”,也不会凭空补出故事依据。删掉这些主张,保留可见过程和较窄的结果。同样,如果真实素材只有 A–B,就不能借本示例的 C–E 替它补完结局。

只有 A–B 时:保留证据缺口,获准后再缩窄承诺 这是另一个独立的原创编辑变体。此次提供的素材到两次没有拉开为止;即使上方完整教学例子写了 C–E,对这次剪辑而言,它们仍未知。这里同样没有实际视频、实测朗读窗口或生成产物。

先分清要做哪件事: - 保留已经选定的“卡片承诺前后变化”主线。它需要可读的改后卡片,以及其间展开过程的证据。先列出缺失的来源位置或补要素材,不先写出承诺的结尾。如果方向已固定,较窄的观察短片只能是备选建议,不能自动替代原任务。 - 经创作者同意,改做只说明现有画面交代了什么的短片。承诺变成“这段能确认哪些尝试”,不再是“问题怎样解决”或“卡片最后写了什么”。保留 A–B 的顺序,从开头就交代范围。

针对较窄版本的一段中文稿: “卡片写着‘十秒展开’,这里能看到的是两次没有展开的尝试。原因是什么、后来有没有打开,这段素材没有给出答案。”

这段话指出卡片主张与现有记录的边界。让两次尝试在画面上看得清,不必每拉一下再配一句。这不是计时测试:两次没拉开,不证明已经过了十秒,更不证明十秒一定做不到。实际旁白仍须等素材中有合适的朗读窗口再安排,本例没有提供时长、静音槽或可用的 narration.json。

不要借用 C 的指向、运输带与扣件声,也不借 D 的展开或 E 的划字。标题和开头同样不能承诺“看到最后揭晓真相”,然后拿没有后续的素材收尾。回放同一次拉动不是多一次失败的证据;明确标注为回放,是另一种剪辑用途。

没有提供后续画面,不证明后来从未拍摄、有人故意隐瞒或事情从未发生。如果只是笔记不全、原片还在,应先回到相应素材再加强结论。如果现有录像本身就止于 B,重做分析也不是后续影像的证据;应保留缺口或补充材料,不把未知写得像已经落定。

针对不完整素材的有范围请求: 只使用我提供的真实前半段证据及来源位置,把后续动作与结果都当作未知。先指出我选定的观众承诺还有哪一部分无法兑现。如果我要求完整的前后变化故事,就列缺失素材,停在写结尾之前;否则提出明确较窄的观察稿,并说明放弃了什么,不默默替换已确认方向。不加修理、卡片改写、对白、后续事件声音或计时结果。只做文字提案,不远程分析、不配音、不渲染。 [把教学标签换成自己的真实素材笔记与范围。]

用于自己素材的纯文字编辑请求 使用我提供的真实证据笔记与来源位置,不套用虚构的 A–E。分开观察、人物或画面中的主张、外部提供的背景和未决问题。若我还没选方向,比较两个有依据的角度,再按选定承诺给出节拍顺序与简短中文稿;已有方向就沿用。缺少必要证据索引时先列缺项,不自动调用远程分析。停在文本方案,不配音、不渲染、不加 BGM;等我选定剪法、剪后视频确实存在,再用实际输出时间映射编排旁白。

预期文件

  • 理解产物:scenes.json、asr_result.json、vlm_analysis.json、silence_periods.json、timeline_fusion.json 与 agent_narration_brief.md。
  • 编导交接:recap_story_plan.json、visual_audio_board.json、可选 style_card.json、narration.json;cut 模式另有 clip_plan.json 与 edited_source.mp4。
  • 交付产物:TTS WAV 分段与元数据、recap_<name>.mp4、subtitles.srt/.ass 和 timeline.json;可编辑草稿是独立的可选导出。
  • 需要具体剪辑判断时,可读原声与旁白怎样分工:原创收音机五拍示例说明何时让对白、动作声或停顿主导,以及为什么只写声音职责标签不能直接控制混音。

验证结果与边界

  • 配音前抽查人名、动作、引用对白和因果是否能对回画面与 ASR,并朗读一遍旁白,确认意思完整、停顿可说。
  • 交付前以正常速度完整看一次实际成片,再只听声音一次,并检查保留原声前后的接点。自动报告只能定位候选问题,不能替代播放。

来源与版本说明

了解 Video Recap Skills全部指南