Communitygithub.com

iart-ai/ad-video-skills

该技能用于根据用户指令(例如“制作宣传片”、“创建产品预热视频”、“生成投放预告片”、“制作带有结尾CTA的揭幕集锦”或“剪辑一支与节拍同步的英雄视频”)生成并导出高质量的15-60秒产品发布视频,并支持多种宽高比导出。

ad-video-skills 是什么?

该技能旨在帮助开发者和内容创作者使用AI代理(如Claude Code、Cursor、Codex)生成专业级的产品发布视频。它提供了一个完整的“钩子-预告-揭幕-功能蒙太奇-结尾CTA”视频叙事结构,并特别强调“音效设计主导画面”的工作流程。技能支持多种宽高比(16:9、9:16、1:1)的导出,确保视频能够在YouTube、Reels、TikTok和Shorts等不同平台上完美展示。同时,它还提供了基于Remotion的具体实现代码示例和验证脚本,帮助用户从静态帧检查到最终MP4编码的全流程质量控制。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/iart-ai/ad-video-skills/tree/HEAD/skills/launch-video

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

发布视频

制作一支高端、高能量的15-60秒发布影片,旨在抓住用户眼球并促成转化。构建经典的叙事弧线——钩子 → 预告 → 揭幕 → 功能蒙太奇 → 结尾CTA——与音乐节拍同步剪辑,并为每个平台比例导出。

使用场景

  • 产品发布、功能宣布、预告片、炒作视频(15-60秒)。
  • 为着陆页制作的“预热”英雄视频。
  • 与节拍同步的揭幕视频,品牌时刻精准落在音乐高潮上。

叙事弧线

节拍任务30秒视频典型时长
钩子 (0–3秒)一个引人注目的画面/动作,阻止用户滚动0–3秒
预告暗示产品;制造好奇心,与节拍同步3–9秒
揭幕产品/标志在音乐高潮时出现9–13秒
功能蒙太奇快速、动感,每个镜头展示一个优点13–25秒
结尾卡标志 + 标语 + CTA,干净地保持25–30秒

按相同比例缩放至15秒(更紧凑)或60秒(更长的蒙太奇,但钩子绝不延长)。

两条不可协商的规则

  1. 音效设计主导画面。 先锁定音轨,标记节拍和高潮点,然后根据这些标记剪辑画面。永远不要为已完成的剪辑配乐——揭幕必须准确落在高潮点上,而不是附近。
  2. 质量优先于数量。 几个完美的镜头胜过许多平庸的镜头。剪掉任何不够优质的镜头。

与节拍同步的揭幕

在音频中找到高潮的确切时间码,然后将揭幕时机设定为品牌标记在那个画面上完全显现,并带有微小的过冲以增强冲击力。

import gsap from "gsap";
const DROP = 9.0; // 秒,从音轨测量
const tl = gsap.timeline({ paused: true });
// 预告在揭幕前制造张力
tl.to(".tease", { opacity: 1, scale: 1.05, duration: DROP, ease: "power1.in" })
// 揭幕在高潮画面上“咔哒”一声出现
  .set(".logo", { opacity: 1 }, DROP)
  .fromTo(".logo", { scale: 1.18 }, { scale: 1.0, duration: .18, ease: "power3.out" }, DROP)
  .fromTo(".flash", { opacity: .9 }, { opacity: 0, duration: .25 }, DROP); // 白色闪烁
audio.addEventListener("play", () => tl.play());

在瞬态信号上剪辑,而不是固定网格:最硬的剪辑放在底鼓/军鼓的击打上;在进入高潮时加快速度(时间重映射),然后硬切退出。

动感功能蒙太奇

每个镜头展示一个优点,时长约0.6–1.0秒,在节拍上进行硬切。每个镜头 = 一个粗体关键字 + 一个单一支持视觉元素。

.feature { opacity:0; }
.feature.in .kw   { animation: pop .35s cubic-bezier(.22,1,.36,1) forwards; }
.feature.in .word { display:inline-block; }
@keyframes pop { from { opacity:0; transform:translateY(24px) } to { opacity:1; transform:none } }
// 根据从音轨测量的节拍标记驱动镜头
const beats = [13.0, 13.8, 14.6, 15.4, 16.2]; // 秒
beats.forEach((t, i) => scheduleAt(t, () => showFeature(i)));

在整个蒙太奇中保持统一的动态语言(相同的进入曲线,相同的退出),这样速度感会表现为自信,而不是混乱。

结尾卡

保持标志 + 标语 + CTA 静止且清晰至少2秒。不要用复杂的运动干扰CTA;让品牌沉淀下来。将品牌时刻落在最强的一个剩余节拍上,然后是一个清晰的按钮/网址。

多宽高比导出

构图时预留中心安全区域,使得一个主版本可以干净地裁剪成所有宽高比。

宽高比用途分辨率安全区域
16:9YouTube、着陆页英雄、X1920×1080保持关键内容在中心90%范围内
9:16Reels、TikTok、Shorts、Stories1080×1920文本在中心80%高度内;避免顶部12%/底部18%(UI)
1:1Feed帖子1080×108016:9画面的中心正方形

将英雄/标志/CTA设计在 1:1中心正方形 内,以确保它在所有裁剪中都能幸存。渲染16:9主版本,然后从同一个项目中重新取景(而不仅仅是添加黑边)9:16和1:1版本。

输出检查清单

  • 音轨先行锁定;揭幕准确落在高潮点上。
  • 钩子赢得了最初3秒钟。
  • 蒙太奇:每个镜头一个优点,在节拍上硬切,统一的动态语言。
  • 结尾卡保持≥2秒,并有一个清晰的CTA。
  • 16:9 + 9:16 + 1:1导出,关键内容在中心安全区域内。
  • 仅使用优质镜头——任何平庸之选都无法通过剪辑。

交付与验证(渲染静态帧 → MP4)

打包辅助脚本 (scripts/):使用 scripts/contact-sheet.sh sheet.png f-hook.png f-mid.png f-end.png 平铺你的静态帧,然后使用 scripts/probe-mp4.sh out.mp4 [WxH] [fps] 验证编码。参见 scripts/README.md。

如果发布影片是用Remotion构建/渲染的,将其视为重层级:注册一个 <Composition>(+ zod schema + defaultProps),所有值都通过 useCurrentFrame() 驱动——不使用GSAP时间线 / 音频事件回调 / Date.now() / Math.random() 在渲染时(将节拍+高潮时间码烘焙到props中)。交付物 = 每个宽高比的渲染输出 out/*.mp4(加上项目本身)。

验证循环 — 渲染静态帧 → 检查 → 编码。 使用 已交付的 props(真实标题/标语/CTA),而不仅仅是 defaultProps,来抽样检查叙事弧线。

# 从钩子到揭幕到结尾卡的精确帧静态图
npx remotion still Launch out/f-hook.png   --frame=24  --props=props/launch.json   # 钩子赢得前3秒
npx remotion still Launch out/f-reveal.png --frame=270 --props=props/launch.json   # 标志在高潮画面上“咔哒”出现
npx remotion still Launch out/f-end.png    --frame=899 --props=props/launch.json   # 结尾卡:标志+标语+CTA,清晰保持
# 检查每一项:保真度(产品/标志、标语、CTA文本准确、品牌颜色正确、揭幕在高潮画面)
#   以及瑕疵(文本溢出、超出画布、CTA在9:16底部三分之一处、缺少字体、闪烁画面卡住)

多宽高比 — 在编码所有版本之前,先在每个宽高比下验证主版本。 一个重取景的错误(英雄被推出安全区域)会在每个宽高比中重复出现;一次性捕获它。

for ar in 16x9 9x16 1x1; do                                 # 按宽高比检查揭幕和结尾卡
  npx remotion still Launch "out/reveal-${ar}.png" --frame=270 \
    --props=props/launch.json --props-merge="{\"aspect\":\"${ar}\"}"
done
# 所有宽高比的静态图都干净?→ 然后编码每个:
for ar in 16x9 9x16 1x1; do
  npx remotion render Launch "out/launch-${ar}.mp4" --props=props/launch.json --props-merge="{\"aspect\":\"${ar}\"}"
done
npx remotion render Launch out/demo.gif --codec=gif --props=props/launch.json   # README演示

在完成之前:

  1. npx remotion still 在钩子/揭幕/结尾卡处渲染干净——没有错误,没有缺少字体/资源。
  2. 标志/标语/CTA文本精确,品牌颜色正确;揭幕落在高潮画面上;关键内容在中心安全区域内,远离9:16底部三分之一。
  3. 仅由帧驱动——没有GSAP/音频回调时间控制、Date.now() 或 Math.random()(节拍/高潮已烘焙到props中)。
  4. 已交付的props正确渲染(不仅仅是 defaultProps);结尾卡保持≥2秒并有一个CTA。
  5. 在编码前已在16:9 + 9:16 + 1:1中验证主版本;MP4可播放;(可选)为README生成GIF。

参考文件

  • references/launch-structure.md — 一个完整的逐镜头模板,包含30秒影片的时间码(可缩放至15-60秒)、节拍同步揭幕时序、动感蒙太奇镜头配方、音效设计主导画面工作流程,以及16:9 / 9:16 / 1:1的详细多宽高比安全区域图。

相关技能