首页 / 全部技能 / 内容创作 / captions-and-music-bed
内容创作 · saranambiar/hyperframes-video-agent-skills

captions-and-music-bed

Generate, style, preview, and burn captions, and build music/percussion beds with ducking, loop/tail selection, fade-outs, and final silence. Use when captions are requested, captions are out of sync, subtitle style needs approval, background music competes with voiceover, or music must start/end at exact moments.

风险提醒:蓝色 · 知晓即可AI 侦查报告
作者 saranambiarGitHub saranambiar/hyperframes-video-agent-skills ↗Stars 48许可 Apache-2.0(仓库根 LICENSE 为 Apache License Version 2.0;GitHub API license.spdx_id = Apache-2.0)commit f6b043d9fd
agent 宿主通常会约束 skill 执行权限;风险提醒为 AI 侦查观点,不构成质量或安全保证。第三方 skill 仅作拆解与展示,安装使用风险自负,版权归原作者。

1实现原理 · 为什么它能做到

进入条件被写死:只在旁白时间线稳定之后使用——避免与 audio-sync-assembly 抢「时序主导权」。

skills/captions-and-music-bed/SKILL.md
Use this skill after the narration timeline is stable.
注:这里在做什么:把「字幕/音乐的时序基准必须是已定稿的旁白」前置成使用前提;族内装配 skill 也把字幕生成安排在 narration-only 母版之后。

双重真源分工:措辞取用户脚本原文,时序取最终无音乐旁白母版;两者分开、互不代替。

skills/captions-and-music-bed/SKILL.md
- Use the user's script as wording source. - Use the final narration-only master as timing source.
注:这里在做什么:这是核心判据——「写什么」与「什么时候出」用不同来源,防止用转写文本改字、或用脚本行数估时间。

字幕时序铁律:首词即出、一次只显示一行、保留标点与大小写、静默 hook 与静默 CTA 不出字幕。

skills/captions-and-music-bed/SKILL.md
Start the caption when the first word is spoken.
注:这里在做什么:把最常见的「晚几个词」故障(failure-modes 也列了 Captions start several words late.)变成硬规则,并给恢复步骤(If captions are late → 查对齐来源、查静默是否挪动了全局时间)。

样式变更必须先做单帧预览再全量烧:挑一张视觉最密的帧出静态图,调字号/底板透明度/边距/宽度后才烧全片。

skills/captions-and-music-bed/SKILL.md
Preview style before burning the full video when style changes.
注:这里在做什么:把「样式是主观项、烧完再改很贵」这一经济性判据写进流程;references/caption-rules.md 重申 Preview on a visually busy frame before full burn-in.

音乐床的验收判据是「听得见」而不是「流里有」:给出 ducking 参数与混音链,并明确「技术上存在但听不见」要抬床或降阈值。

skills/captions-and-music-bed/SKILL.md
If music is "technically there" but inaudible, raise bed or reduce ducking threshold.
注:这里在做什么:针对「probe 显示有音轨、耳朵听不到」这类技术性通过、体验性失败给出可执行修正。

音源尾部策略:源曲早于视频结束就从「音乐上有用的」后段重启,留够时长不切掉最后一拍,缓淡出并保留用户要求的最终静音。

skills/captions-and-music-bed/SKILL.md
If the music source ends early, restart from a musically useful tail section.
注:这里在做什么:把循环/尾部选择处理成音乐判断而非机械 loop,并要求最终静音被显式保留(对应 failure-modes 的三条尾部故障)。

十步建床程序把主观音量决策逐一列出(源偏移、hook 音量、旁白床音量、密集解释段音量、停顿是否保持 ducked、CTA 音量、结束时间、淡出、limiter 混音)。

skills/captions-and-music-bed/SKILL.md
1. Probe source music duration. 2. Pick source start offset.
注:这里在做什么:音乐床最难的是「哪一段该多大声」,这里把它拆成 10 个必须逐一决定的点,避免用一条 amix 糊过去。

2核心能力

01ASS 字幕样式起点:仓库根模板给出 1920x1080、底部居中(Alignment=2)、Arial 44、半透明黑底板、MarginV=56 的 Caption 样式
02字幕分块规则:按自然短语/换气点/标点/最长行长/画面复杂度切;不得改变语义、不得添加脚本没有的标点
03时序来源优先级三级(最终旁白母版词级对齐 > 用户或转写短语时间戳 > 场景级已知时间加人工估计),并禁止用已过期的编辑前音频定时
04音乐 ducking 的可执行 FFmpeg 链:aresample/aformat/asplit 分旁白与侧链,sidechaincompress 参数化,amix 后接 alimiter
05音量策略按时段分级(hook 无旁白可大声、早期旁白下压、密集解释段更低且短停顿不抽高、结尾 CTA 可抬升后淡出)
06字幕故障恢复(迟到 / 过大)与音乐听点 QA(前 5 秒、首次旁白进入、密集解释段、长停顿、尾部重启、最后 5 秒)

3外部依赖

类型依赖
cliffmpeg 滤镜链(aresample / aformat / asplit / sidechaincompress / amix / alimiter)用于旁白与音乐床的 ducking 混音
packageASS(Advanced SubStation Alpha)字幕格式与样式头,由 templates/caption-style.ass 提供起点
package仓库根脚本 scripts/build_ass_captions.py(把 JSON/CSV 的 start/end/text 事件展开为单行 ASS,默认每行 ≤58 字符)——本 skill 只点名样式模板未点名该脚本,脚本归属在仓库层
package输入素材:用户提供的脚本文本、最终旁白母版、音乐源文件(本地资产,非外部服务)
package字体 Arial(写死在 ASS 样式行的 Fontname 字段;渲染机无此字体会被 libass 替换字体,影响观感)

4风险提醒 风险提醒:蓝色 · 知晓即可

风险提醒:蓝色 · 知晓即可
  • Arial 字体硬依赖未声明 — ASS 样式 Fontname=Arial;Linux/容器渲染机若无该字体,libass 会回退,实际字号与行宽与预览不一致,可能重新压到 UI。建议改用随包或环境声明的字体并重新预览验证。
  • 字幕生成脚本的归属模糊 — 本 skill 未点名 scripts/build_ass_captions.py(只给样式模板),若宿主只加载本件,可能手写出与模板样式头不兼容的 ASS(脚本侧要求 header 与 Dialogue 行字段数一致)。
  • 第三优先级时序来源(转写时间戳)可能是外部文本 — Phrase timestamps from user or transcript 允许把外部 ASR 结果当时间基;虽然 skill 不外发,但若转写来自第三方服务,其文本进入成片内容前无校验步骤。
  • ducking 参数是示例值而非自适应 — threshold=0.028:ratio=4:attack=18:release=260 是固定值;不同旁白动态范围下可能过度压缩或抽吸(failure-modes 自己列了 Ducking pumps too loudly during narration pauses.),仍需人耳复核。
  • 字幕与音乐的时序正确性依赖上游母版未被改动 — 规则禁止从过期音频定时,但没有校验机制(例如比对母版时长与 manifest)。若上游旁白被静默替换,字幕会整体错位且 probe 不会报错。
风险提醒:蓝色,知晓即可。skill 目录仅 SKILL.md + references/{caption-rules,music-ducking}.md(纯指令);接触面是本地 CLI(ffmpeg 的 ducking/混音/烧字幕滤镜链)与本地读写(captions/*.ass、预览静帧、混音后成片、proof frame),符合蓝档。**没有把素材送外部服务**:全量扫描本 skill 目录内无 http(s):// 端点、无 fetch/requests、无 token/env 读取、无上传或生成服务调用。音乐源与旁白均为用户提供的本地文件,skill 不推荐、不下载、不上传任何音源。九件同族 skill 判级口径一致:目录内只有 SKILL.md(+ references),行为面是本地读写与本地 CLI,无端点、无凭证、无素材外发。

5第二遍独立确认

  • [ok] 「无外部依赖、素材不出网」是否成立 — 本目录正则扫描零命中 URL/fetch/token;音乐源与脚本均声明为用户提供(Music source rules 只讲 offset/duck/tail)。无上传、无生成服务、无账号额度消耗,不构成橙档。
  • [ok] ducking 片段是否是可执行 filter_complex — music-ducking.md 给的是四行完整链(asplit 出 narr/side 经 sidechaincompress 得 ducked 再 amix inputs=2 duration=first 后 alimiter=limit=0.95),参数(threshold=0.028:ratio=4:attack=18:release=260)具体非占位,可原样拼接。
  • [ok] ASS 模板能否被仓库脚本直接复用 — templates/caption-style.ass 结构与 scripts/build_ass_captions.py 的 header_from_template 期望一致:脚本取 Dialogue: 之前的部分当 header;模板 [Events] Format 行的字段数(Layer,Start,End,Style,Name,MarginL,MarginR,MarginV,Effect,Text)与脚本输出的 Dialogue 行匹配。
  • [discrepancy] 「本 skill 负责生成 ASS」是否被 SKILL.md 声明 — SKILL.md 只给样式起点与规则,未点名 scripts/build_ass_captions.py;把字幕文件从哪来写进脚本清单的是 render-qa-and-surgical-changes 与仓库 README。若只加载本件,agent 需自行决定生成方式(手写 ASS 或调仓库脚本)。
  • [discrepancy] 字体依赖是否被声明 — ASS 样式行写死 Fontname=Arial,但 SKILL.md 与 references 均未提示字体缺失风险;Linux 渲染机常无 Arial,libass 会回退替换字体,字号与行宽观感与预览不同。该风险真实存在但文档未覆盖。
  • [ok] QA 判据是否可自动验证 — SKILL.md 把听觉/视觉可读列为主判据(Check music is present and audible, not merely technically in the stream.),并给 probe 音频流作为辅助——即承认脚本只能验一半,另一半需人耳/人眼预览。

6结论

  • 双重真源(措辞取脚本、时序取旁白母版)把字幕最容易出错的两件事分开治理
  • 主观项一律「先预览后全量」,把返工成本压在单帧上
  • 音乐验收标准写成 audible 并给出修正动作,直击「probe 通过但听不到」的假通过
  • FFmpeg 混音链完整可跑,参数具体(阈值/比率/启动释放/限幅)
  • 失败模式清单可直接当 QA 勾选表(5 条音乐 + 4 条字幕类)
  • 适合:适合:旁白时间线已稳定的项目里做「字幕层 + 音乐层」——生成/样式化/预演/烧录字幕、字幕迟到或过大需要修、需要背景音乐在旁白下 ducking、需要音乐在指定时刻起止或保留最终静音、或需要针对密集解释段与停顿做音量策略的场合。
    不适合:不适合:① 旁白时序还没定稿(先用 audio-sync-assembly 定时间线,本 skill 第一行即以此为前提);② 需要替用户选曲或下载音乐(skill 不含任何音源来源与端点);③ 场景画面设计与动效(走 motion-design-systems / hyperframes-scene-builder);④ 需要多行字幕或逐词高亮样式的场合——默认规则是单行单条,逐词样式需自行扩展 ASS 且不受本 skill 判据覆盖。
    安装 agent 直装可复制
    ① 本站镜像 更新 2026-09-28
    方式 A · 人下载镜像包下载 captions-and-music-bed.tar.gz
    sha256: 07c0b567449820c1…
    方式 B · JSON 格式安装指南,复制给 agent
    安装指南
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② 上游 GitHub · 原始来源
    能访问 GitHub?直接去上游安装(实时版,可能已更新)GitHub 原始 ↗
    本页镜像锁定 commit f6b043d9fd;上游为实时仓库。
    来源信息 GitHub 原始
    作者 / 仓库saranambiar / saranambiar/hyperframes-video-agent-skills
    Stars48
    最近推送2026-06-14
    本 skill commitf6b043d9fd
    许可Apache-2.0(仓库根 LICENSE 为 Apache License Version 2.0;GitHub API license.spdx_id = Apache-2.0)
    本站信息
    收录日期2026-09-06
    分类内容创作
    侦查报告AI 侦查 · 2 遍 · 2026-09-06
    本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。
    同分类邻近