- AI 技能/插件
- 音视频
- 视频处理
- 人工智能
【免费下载链接】video-use
Edit videos with coding agents
导读
video-use是一个开源、基于对话驱动的视频编辑技能(Skill),它让 Claude Code、Codex 等具备 Shell 能力的编码 Agent 能够"阅读"原始素材并自主完成剪辑决策:转写、切条、调色、叠加动画、烧录字幕,最终产出final.mp4。本文以仓库根目录的 SKILL.md 为骨架,结合 helpers/ 下五个 Python 工具的真实实现,系统讲解其设计原则、12 条硬性规则、完整工作流、EDL 格式、剪辑工艺、调色模型、字幕风格与动画编排。读完本文,你将掌握如何安装并驱动这套流水线,理解每条生产正确性规则背后的 ffmpeg 原理,并能独立为一个多镜头(multi-take)素材集产出可直接交付的成片。
一、设计原则:LLM 不"看"视频,而是"读"视频
video-use的核心哲学只有一句话:LLM 从原始转写文本 + 按需视觉信息中进行推理。它不会把视频逐帧丢给模型(那会产生数百万 token 的噪声),而是只维护一个真正值得保留的派生产物——按短语打包的转写文件takes_packed.md,其余一切(填充词标记、重拍检测、镜头分类、强调打分)都在决策时刻即时推导。
SKILL.md 用 7 条原则勾勒整体设计:
- LLM 从原始转写 + 按需视觉推理。唯一的派生产物是
takes_packed.md。 - 音频优先,视觉跟随。剪辑候选来自语音边界与静音间隙,仅在决策点才下钻到画面。
- 询问 → 确认 → 执行 → 迭代 → 持久化。在用户用自然语言确认策略之前,绝不触碰剪辑。
- 泛化。不预设视频类型,先看素材、再问用户、然后剪辑。
- 艺术自由是默认值。文档中所有具体数值、预设、字体、颜色、时长、音高结构都是"一个已验证视频的工作示例",不是强制要求;唯一必须遵守的是 Hard Rules。
- 自由发明。如果素材需要文档中未描述的技术(分屏、画中画、下三分之一身份卡片、反应剪辑、变速、定格、交叉淡化、匹配剪辑、L-cut、J-cut……),直接用 ffmpeg 和 PIL 构建,不必等待许可。
- 展示前自验。自己都不愿意交付的结果,不要呈现给用户。
这一设计直接呼应 README 中"LLM never watches the video"的表述:转写层(始终加载)用 ElevenLabs Scribe 拿到词级时间戳、说话人分离和音频事件,打包成约 12KB 的takes_packed.md;视觉层(按需调用)用timeline_view生成胶片条 + 波形 + 词标签 PNG,只在决策点使用。
二、12 条硬性规则:生产正确性不可妥协
SKILL.md 强调:这些规则一旦偏离就会产生静默失败或坏输出,它们不是品味问题,而是正确性问题。逐条解读如下:
- 字幕最后应用——在滤镜链中必须排在所有覆盖层(overlay)之后,否则覆盖层会遮挡字幕(静默失败)。
- 逐段抽取 → 无损
-c copy拼接,而不是单次 filtergraph 全片处理,否则叠加覆盖层时每一段都会被二次编码。 - 每个段边界做 30ms 音频淡入淡出(
afade=t=in:st=0:d=0.03,afade=t=out:st={dur-0.03}:d=0.03),否则每个切口都会出现可闻的"爆音"。 - 覆盖层使用
setpts=PTS-STARTPTS+T/TB把动画的第 0 帧平移到覆盖窗口起点,否则覆盖窗口内看到的是动画的中间帧。 - 主字幕(master SRT)使用输出时间线偏移:
output_time = word.start - segment_start + segment_offset,否则段拼接后字幕错位。 - 绝不在单词中间切断,每个剪切边都吸附到 Scribe 转写给出的词边界。
- 每个剪切边都要留边距(padding),工作窗口 30–200ms。Scribe 时间戳有 50–100ms 漂移,留边可吸收漂移;快节奏剪紧一点,电影感剪松一点。
- 只使用词级逐字 ASR。绝不用 SRT/短语模式(会丢失亚秒级间隙数据),绝不用归一化的填充词(会丢失编辑信号)。
- 按源文件缓存转写。除非源文件本身变化,否则绝不重新转写。
- 多个动画用并行子代理,绝不串行。通过
Agent工具同时生成 N 个,总墙钟时间 ≈ 最慢的一个。 - 执行前确认策略。用户批准纯英文计划之前绝不触碰剪辑。
- 所有会话输出写入
<videos_dir>/edit/,绝不写入video-use/项目目录内部。
规则 2、3、5 在 helpers/render.py 中有完整的工程化落地(见第五节),规则 10 在"动画编排"一节有专门的并行子代理模板。
三、目录布局与会话内存
技能本体位于video-use/(仓库根),用户素材放在任意目录,所有会话产物统一落在<videos_dir>/edit/:
<videos_dir>/ ├── <source files, untouched> └── edit/ ├── project.md ← 会话记忆;每次会话追加 ├── takes_packed.md ← 短语级转写,LLM 的主要阅读视图 ├── edl.json ← 剪辑决策 ├── transcripts/<name>.json ← 缓存的原始 Scribe JSON ├── animations/slot_<id>/ ← 每个动画的源 + 渲染 + 推理 ├── clips_graded/ ← 带调色与淡入淡出的逐段抽取 ├── master.srt ← 输出时间线字幕 ├── downloads/ ← yt-dlp 下载产物 ├── verify/ ← 调试帧 / 时间线 PNG ├── preview.mp4 └── final.mp4其中project.md是跨会话的持久记忆:每次会话在文件末尾追加一节,包含Strategy(一段话描述方案)、Decisions(镜头选择、剪切、调色、动画及原因)、Reasoning log(非显而易见决策的一行推理)、Outstanding(遗留事项)。下次启动时读取该文件,用一句话总结上次会话,再询问是否继续——这正是 SKILL.md 原则 3 中"persist"的载体。
四、安装与冷启动检查
首次安装的完整步骤在 install.md:克隆仓库、安装 Python 依赖、安装 ffmpeg、注册技能、配置 ElevenLabs API key。日常会话不必重跑安装,冷启动只需验证以下几点:
ELEVENLABS_API_KEY可解析——来自环境变量或仓库根目录.env(缺失时请用户粘贴,写入.env,绝不写入用户的<videos_dir>);ffmpeg+ffprobe在 PATH 中;- Python 依赖已安装(仓库内执行
uv sync或pip install -e .); - 若会话需要 HyperFrames 或 Remotion 槽位,需 Node.js + npm(HyperFrames 目前要求 Node.js 22+);
yt-dlp、HyperFrames、Remotion、Manim 仅在首次使用时安装;首次使用的动画环境搭建发生在槽位目录内,而不是 video-use 仓库根目录。HyperFrames 可用npx --yes hyperframes ...调用,Remotion 可用npx create-video@latest脚手架或作为槽位内项目级依赖安装;- 技能内置了
skills/manim-video/,构建 Manim 槽位时阅读其 SKILL.md。
依赖清单见 pyproject.toml:requests、librosa、matplotlib、pillow、numpy(可选动画依赖manim)。注意 helpers 没有 console scripts,一律以python helpers/<name>.py直接调用。
技能通过符号链接注册(如~/.claude/skills/video-use/或~/.codex/skills/video-use/),helpers 与 SKILL.md 必须保持同级。安装验证要求"对真实文件跑一条真实命令",而不是仅检查文件存在。
五、Helpers 工具链:源码级拆解
六个 helper 脚本构成完整流水线,全部位于 helpers/:
| 脚本 | 职责 | 关键参数 |
|---|---|---|
transcribe.py | 单文件 Scribe 调用 | --num-speakers N、--language、--edit-dir(有缓存) |
transcribe_batch.py | 4 工作线程并行转写 | --workers(默认 4)、--num-speakers |
pack_transcripts.py | transcripts/*.json→takes_packed.md | --silence-threshold(默认 0.5s) |
timeline_view.py | 胶片条 + 波形 PNG | <video> <start> <end>、--n-frames、--transcript |
render.py | 段抽取 → 拼接 → 覆盖层 → 字幕 | --preview、--draft、--build-subtitles、--no-subtitles、--no-loudnorm |
grade.py | ffmpeg 滤镜链调色 | --preset、--filter、--analyze、--list-presets |
5.1 转写层:Scribe 词级 ASR
helpers/transcribe.py 先用 ffmpeg 把视频抽成单声道 16kHz PCM WAV(-ac 1 -ar 16000 -c:a pcm_s16le),再上传到 ElevenLabs Scribe 接口。请求参数值得注意(call_scribe,见 helpers/transcribe.py):
model_id=scribe_v1;diarize=true——说话人分离;tag_audio_events=true——标记(laughs)、(sighs)、(applause)等音频事件;timestamps_granularity=word——词级时间戳,这是规则 8 的实现基础;- 可选
language_code与num_speakers(已知说话人数时能提升分离准确率)。
输出完整 JSON 写入<edit_dir>/transcripts/<video_stem>.json。按源文件缓存:文件已存在则直接跳过上传(规则 9)。
transcribe_batch.py负责多镜头素材的并行转写,默认 4 个工作线程,支持--workers调整;它按扩展名(.mp4/.mov/.mkv/.avi/.m4v等)扫描目录并跳过已有转写的文件。
5.2 打包层:takes_packed.md 的生成算法
helpers/pack_transcripts.py 是"LLM 主要阅读视图"的制造者。其核心函数group_into_phrases(helpers/pack_transcripts.py)按两条规则断句:
- 静音 ≥ 阈值(默认 0.5s)——利用 Scribe
words数组中spacing类型条目携带的间隙信息; - 说话人切换——
speaker_id变化即断句。
音频事件(audio_event)会保留在短语文本中并加括号(如(laughs)),这正是剪辑工艺中"音频事件即信号"的数据来源。输出格式:
## C0103 (duration: 43.0s, 8 phrases) [002.52-005.36] S0 Ninety percent of what a web agent does is completely wasted. [006.08-006.74] S0 We fixed this.行首[start-end]是短语级时间范围,S0是说话人编号(剥离了speaker_前缀)。按 SKILL.md 的测算,一小时素材打包后约占原始 Scribe JSON 的 1/10 token,且从纯文本就能获得词边界精度——这就是"12KB 文本 + 少量 PNG 替代 4500 万 token 帧噪声"的关键。
5.3 视觉下钻层:timeline_view
helpers/timeline_view.py 是唯一的视觉下钻工具,给定<video> <start> <end>产出合成 PNG:等间隔抽取 N 帧拼成胶片条(默认 10 帧)、在下方渲染 RMS 波形包络、叠加词级标签、并用半透明蓝色阴影标注 ≥400ms 的静音间隙(find_silences阈值 0.4s)。SKILL.md 明确警告:这不是扫描工具,只在决策点使用(存疑停顿、重拍对比、切口抽查),绝不能在后台循环扫描每一句。
5.4 调色层:grade.py 的两种模式
helpers/grade.py 提供两种工作方式:
自动模式(默认)——auto_grade_for_clip用 ffmpegsignalstats滤镜采样约 10 帧,统计亮度均值(YAVG)、动态范围(YMIN/YMAX)、饱和度(SATAVG),按位深归一化后套用决策规则:过暗提 gamma、过平提对比度、极平提饱和。所有调整硬性钳制在 ±8% 以内,绝不施加创意色偏——目标是"看起来干净但不像调过色"。
预设模式——--preset指定命名滤镜(--list-presets可查看全部):
subtle:eq=contrast=1.03:saturation=0.98,安全底线;neutral_punch:对比度 + 轻微 S 曲线,无色偏,最小修正;warm_cinematic:+12% 对比度、压黑、-12% 饱和、暖阴影冷高光的青橙分离、胶片曲线(SKILL.md 注明来自真实发布视频,对 talking head 安全);none:直通拷贝,用户未要求调色时的默认值。
任何其他风格用--filter '<raw ffmpeg>'直接传滤镜串。两条硬性要求:调色在段抽取阶段逐段施加(而不是拼接后再调,否则二次编码),以及不测肤色就不要激进。调色心智模型是 ASC CDL:out = (in * slope + offset) ** power,slope 管高光、offset 管阴影、power 管中间调,最后全局饱和度。
5.5 渲染层:render.py 的六阶段管线
helpers/render.py 完整实现规则 1–5,管线顺序(见模块 docstring 与main):
- 逐段抽取(
extract_all_segments→extract_segment):每段一个独立 MP4,调色滤镜 + 30ms 音频淡入淡出烘焙进段内(规则 3)。质量阶梯:final 为 1080plibx264 fast CRF 20,preview 为 1080pmedium CRF 22,draft 为 720pultrafast CRF 28(仅供切口验证)。竖屏素材按高度缩放scale=-2:1920保持朝向; - 无损拼接(
concat_segments):concat demuxer +-c copy,不重编码(规则 2); - 字幕构建(
--build-subtitles→build_master_srt):从各源转写 + EDL 偏移计算输出时间线时间(规则 5),按 2 词一句、遇标点断句、大写化; - 合成(
build_final_composite):覆盖层逐个setpts=PTS-STARTPTS+T/TB平移帧 0(规则 4),overlay=enable='between(t,start,end)'挂载,字幕滤镜排最后(规则 1); - 响度归一(默认开启):两遍 loudnorm 到 -14 LUFS / -1 dBTP / LRA 11(社交平台标准,preview/draft 模式用单遍近似);
- HDR → SDR:检测
color_transfer为 PQ(smpte2084)或 HLG(arib-std-b67)时,前置zscale+tonemap链(hable 映射、desat=0)转 Rec.709 SDR——否则 8-bit 输出仍携带 HDR 元数据,在录屏与社交上传的二次编码中会过饱和、过曝。
EDL 的grade字段可为预设名、原始滤镜串或auto(resolve_grade_filter按段分析并施加逐段微修正)。
六、八步工作流:从清单到交付
SKILL.md 定义的标准流程:
- 盘点(Inventory):
ffprobe每个源;transcribe_batch.py批量转写目录;pack_transcripts.py生成takes_packed.md;抽样一两个timeline_view获得视觉第一印象。 - 预扫描问题:通读
takes_packed.md,记录口误、明显说错的词、要避免的表达,形成纯文本清单并喂给编辑简报。 - 对话(Converse):用自然语言描述所见,基于素材提出针对性问题,收集:内容类型、目标时长/宽高比、审美/品牌方向、节奏感受、必须保留的时刻、必须剪掉的时刻、动画与调色偏好、字幕需求。不要用固定清单——每类素材该问的问题都不一样。
- 提出策略:4–8 句话描述:形态、镜头选择、剪辑方向、动画计划、调色方向、字幕风格、时长估算。等待确认(规则 11)。
- 执行:通过编辑子代理简报产出
edl.json;在存疑处用timeline_view下钻;动画交给并行子代理;逐段调色;render.py合成。 - 预览:
render.py --preview(1080p 可评估质量)。 - 自评(展示用户之前):对渲染输出(不是源素材)在每个切口边界 ±1.5s 窗口跑
timeline_view,逐图检查:切口视觉不连续/闪烁/跳变、边界波形尖峰(漏网的爆音)、字幕被覆盖层遮挡(规则 1 违规)、覆盖层错位或显示错误帧(规则 4 违规)。再抽样开头 2s、结尾 2s 与 2–3 个中间点,检查调色一致性、字幕可读性、整体连贯性;用ffprobe核对时长符合 EDL 预期。自评上限 3 轮——3 轮后仍有问题就标记给用户,而不是无限循环。 - 迭代 + 持久化:自然语言反馈 → 重新规划 → 重新渲染;绝不重新转写(规则 9);确认后出最终渲染,追加写入
project.md。
七、剪辑工艺:音频优先的切口决策
SKILL.md 给出可操作的口径:
- 音频优先:切口候选来自词边界和静音间隙;
- 保留高峰:笑声、妙语、强调节拍要延伸过去,把反应也剪进来——笑声本身就是节拍;
- 说话人交接需要语流间的"空气",常见 400–600ms;快节奏更短,电影感更长;
- 音频事件即信号:
(laughs)、(sighs)、(applause)标记节拍,延伸越过它们; - 静音间隙是切口候选:≥400ms 通常最干净;150–400ms 的短语边界可用但需目检;<150ms 不安全(处于短语中间);
- 切口留边示例(随附的发布视频实测):首词前 50ms、末词后 80ms;蒙太奇剪紧、纪录片放松,始终落在 30–200ms 工作窗口(规则 7);
- 绝不割裂地分别推理音轨与画面——每个切口必须同时满足两条轨道的质量要求。
八、编辑子代理简报:多镜头选优的标准模板
当任务是"从多个镜头中为每个节拍选出最佳一条"时,SKILL.md 建议派发独立子代理,简报结构如下(结构本身是承重的,音高形状示例不是):
You are editing a <type> video. Pick the best take of each beat and assemble them chronologically by beat, not by source clip order. INPUTS: - takes_packed.md (time-annotated phrase-level transcripts of all takes) - Product/narrative context: <2 sentences from the user> - Speaker(s): <name, role, delivery style note> - Expected structure: <pick an archetype or invent one> - Verbal slips to avoid: <list from the pre-scan pass> - Target runtime: <seconds>常见结构原型(可选、可改、可发明):Tech launch/demo 用HOOK → PROBLEM → SOLUTION → BENEFIT → EXAMPLE → CTA;教程用INTRO → SETUP → STEPS → GOTCHAS → RECAP;访谈是(QUESTION → ANSWER → FOLLOWUP)循环;旅行/活动用ARRIVAL → HIGHLIGHTS → QUIET MOMENTS → DEPARTURE;纪录片用THESIS → EVIDENCE → COUNTERPOINT → CONCLUSION;音乐/演出用INTRO → VERSE → CHORUS → BRIDGE → OUTRO。
规则包括:起止时间必须落在转写的词边界上;切口留边(30–200ms);优先 ≥400ms 静音作为切口;无更好镜头时才保留不可避免的口误并在reason注明;超预算就删节拍或收尾,报告总时长并自我修正。输出为无散文的 JSON 数组,并附一行总时长核验:
[{"source": "C0103", "start": 2.42, "end": 6.85, "beat": "HOOK", "quote": "...", "reason": "..."}, ...]九、EDL 格式:剪辑决策的单一事实来源
edl.json是执行与渲染之间的契约,完整结构如下(出自 SKILL.md):
{ "version": 1, "sources": {"C0103": "/abs/path/C0103.MP4", "C0108": "/abs/path/C0108.MP4"}, "ranges": [ {"source": "C0103", "start": 2.42, "end": 6.85, "beat": "HOOK", "quote": "...", "reason": "Cleanest delivery, stops before slip at 38.46."}, {"source": "C0108", "start": 14.30, "end": 28.90, "beat": "SOLUTION", "quote": "...", "reason": "Only take without the false start."} ], "grade": "warm_cinematic", "overlays": [ {"file": "edit/animations/slot_1/render.mp4", "start_in_output": 0.0, "duration": 5.0} ], "subtitles": "edit/master.srt", "total_duration_s": 87.4 }字段语义:grade是预设名或原始 ffmpeg 滤镜串(可为auto);overlays是已渲染的动画片段,start_in_output决定其在成片时间线上的挂载起点;subtitles可选且最后应用。ranges中的start/end是源素材本地时间,渲染器据此抽取并计算输出时间线偏移。
十、字幕:三个值得推理的维度
字幕有三个维度需要推理:断句(每行 1/2/3 个词或整句)、大小写(UPPER/Title/Natural)、位置(距底部边距)。组合取决于内容:
bold-overlay(短平快技术发布、快节奏社交):2 词一句、UPPERCASE、遇标点断句、Helvetica 18 Bold、白字黑描边、MarginV抬高。SKILL.md 示例给出MarginV=35,而仓库实际随附的SUB_FORCE_STYLE(helpers/render.py)使用MarginV=90——代码注释说明这不是品味而是平台安全区规则:TikTok/IG Reels/Shorts 的 UI(标题、用户名、音乐、右侧操作栏)覆盖竖屏帧底部约 25–30%,libass 按PlayResY=288相对缩放画布,MarginV=90可将字幕基线抬到距底部约 30% 处,在任何宽高比下都避开 UI;不要无故降到 75 以下。以随附实现为准:
FontName=Helvetica,FontSize=18,Bold=1, PrimaryColour=&H00FFFFFF,OutlineColour=&H00000000,BackColour=&H00000000, BorderStyle=1,Outline=2,Shadow=0, Alignment=2,MarginV=90natural-sentence(叙事、纪录片、教育):4–7 词断句、句子大小写、自然停顿处断句、MarginV=60–80、字号更大、最大宽度略宽。仓库未随附该模式的 force_style,需要时自行设计。
render.py --build-subtitles会按 2 词一句、标点断句的算法从逐源转写自动生成master.srt(build_master_srt,见 helpers/render.py):对每个段,取落在段范围内的词,成句后按词.start - 段.start + 段偏移映射到输出时间线,输出前统一大写化并去除尾部标点。硬性要求仍是规则 1(最后应用)与规则 5(输出时间线偏移)。
十一、动画编排:按槽位选引擎,并行子代理构建
动画必须匹配内容与品牌:调色板、字体、视觉语言都来自对话,绝不假设默认值;用户未给时在策略阶段提出调色板并等待确认。引擎选择不搞一刀切:
- HyperFrames——浏览器原生 HTML/CSS/GSAP 视频合成:产品 UI 动效、网页转视频、mockup 转视频、动态排版、落地页/故事板宣传、数据驱动 UI 状态、透明 WebM 覆盖层,以及需要确定性帧捕获 + lint/validate/render 检查的片段。槽位内用
npx --yes hyperframes init . --example blank --non-interactive --skip-skills脚手架,构建后跑适用的检查(lint、validate、可行时草稿渲染),最后npx --yes hyperframes render . -o render.mp4或--format webm -o render.webm(需要 alpha 时); - Remotion——React/CSS 组合、组件状态、可复用 React 原语或既有品牌系统。槽位内用
npx create-video@latest脚手架或本地安装 Remotion,用项目本地remotion render输出render.mp4,再用ffprobe核验时长与分辨率; - Manim——正式图表、状态机、公式推导、图形变形,深度内容见 skills/manim-video/SKILL.md;
- PIL + PNG 序列 + ffmpeg——简单覆盖卡片:计数器、打字机文本、单条柱状揭示、渐进式绘制,迭代快、任意审美(随附发布视频即用此法)。
混合使用不被禁止(例如 PIL 背景 + HyperFrames/Remotion 图层叠加)。EDL 的overlays.file必须指向真实渲染产物路径。
时长经验值(上下文相关):同步解说类须 1× 可读——简单卡片约 3s 底线、通常 5–7s、复杂图表 8–14s;节拍同步的强调动效(MV、快剪)0.5–2s 即可,此时"1× 可读"降级为"1× 可辨识";切出前终帧保持 ≥1s(通用);压在配音上时总时长 ≥旁白时长 + 1s(通用);绝不并行揭示多个独立元素——眼睛一次只能追踪一个新东西。
动画落点时机(同步解说类):拿到落点词的词级时间戳,让覆盖层提前reveal_duration秒开始,使落定帧正好与说出的落点词重合,否则动画与旁白脱节。
缓动(通用,绝不用 linear):
def ease_out_cubic(t): return 1 - (1 - t) ** 3 def ease_in_out_cubic(t): if t < 0.5: return 4 * t ** 3 return 1 - (-2 * t + 2) ** 3 / 2ease_out_cubic用于单次揭示(缓慢落定),ease_in_out_cubic用于连续绘制。打字文本锚定技巧:按完整字符串宽度居中,而非部分字符串宽度,否则揭示过程中文本会左移。示例配色(发布视频,仅为众多审美之一):近黑背景(10,10,10)、橙色强调#FF5A00/(255,90,0)、暗灰标签(110,110,110)、Menlo Bold 字体(/System/Library/Fonts/Menlo.ttcindex 1)、≤2 个强调色、约 40% 留白、极简装饰——终端的复古技术感。这只是一种风格。
并行子代理简报——每个动画一个子代理(通过Agent工具),提示词必须自包含(子代理没有父上下文),包含 10 项:①一句话目标("只做一个动画:[规格]。别的都不做");②绝对输出路径(<edit>/animations/slot_<id>/render.mp4);③精确技术规格(分辨率、fps、编码器、pix_fmt、CRF、时长);④具体调色板值(RGB 元组、hex 或设计系统引用);⑤字体路径及索引;⑥逐帧时间线(何时发生什么、用什么缓动);⑦反清单("无装饰、无多余、未指定就不加标题");⑧代码模式参考(内联复制 helpers,跨槽位不 import);⑨交付清单(脚本、渲染、ffprobe 核验时长、报告);⑩"不要提问,任何歧义都选最显然的解释并继续"。一个子代理只产出一个文件(文件名唯一,并行代理互不覆盖)。
十二、输出规格与抗模式清单
输出规格:默认匹配源素材,除非用户另有要求。常见目标:1920×1080@24电影感、1920×1080@30屏幕内容、1080×1920@30竖屏社交、3840×2160@244K 影院、1080×1080@30方形。render.py默认把任意源缩放到 1080p;其他目标需传--filter或编辑抽取命令。值得主动询问用户交付格式。
抗模式清单(无论什么风格都会翻车的做法):分层预计算编解码格式(USABILITY/tone 标签/镜头层)——过度工程,决策时从转写即时推导即可;手调的时刻打分函数——LLM 选得比任何启发式都好;Whisper SRT/短语级输出——丢失亚秒级间隙数据,必须词级逐字;本地 CPU 跑 Whisper——慢且归一化填充词,用托管 Scribe;合成前把字幕烧进基底——覆盖层会遮住它们(规则 1);有覆盖层时用单次 filtergraph——双重重编码,用逐段抽取 + 拼接;线性缓动——机械感,必须三次缓动;段边界硬切音频——可闻爆音(规则 3);按部分字符串居中打字文本——随增长左移;多个动画串行子代理——必须并行;确认策略前就动手剪辑——绝不允许;重新转写已缓存源——不可变输入的不变输出;预设视频类型——先看、再问、最后剪。
结语
video-use的全部功力浓缩在 SKILL.md 这份技能文档里:12 条硬性规则保证输出的生产正确性,7 条原则划定"必做"与"艺术自由"的边界,而 helpers/ 下的脚本把每一条规则都变成了可执行、可验证的工程实现。无论你的素材是 talking head、蒙太奇、教程、旅行还是访谈,这套"转写 → 打包 → 推理 → EDL → 渲染 → 自评"的流水线都能以对话方式驱动,产出自检通过的成片。动手前请务必通读 install.md 完成环境搭建,并在每次会话中让全部输出落在<videos_dir>/edit/之下。
- AI 技能/插件
- 音视频
- 视频处理
- 人工智能
【免费下载链接】video-use
Edit videos with coding agents
相关推荐
video-use 安装部署实战指南:为 Claude Code / Codex 等 Coding Agent 配置对话式视频编辑器
video use 安装部署实战指南:为 Claude Code / Codex 等 Coding Agent 配置对话式视频编辑器 video use 是一套
AI 技能/插件音视频视频处理人工智能OpenMontage Avatar-Video 技能中的 HeyGen 视频背景配置完全指南:颜色、图片、视频与绿幕合成
OpenMontage Avatar Video 技能中的 HeyGen 视频背景配置完全指南:颜色、图片、视频与绿幕合成 导读 本文聚焦 OpenMontag
人工智能AI Agent音视频媒体生成工作流自动化终极智能视频剪辑指南:5分钟学会AI自动字幕剪辑
终极智能视频剪辑指南:5分钟学会AI自动字幕剪辑 AutoCut是一款革命性的智能视频剪辑工具,它通过AI技术将复杂的视频剪辑过程简化为文本编辑操作。无论你是视
人工智能语音音视频
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考