Communitygithub.com

murathany7/make-video

为品牌创建营销视频、短视频、广告、帖子或轮播图。从与用户的对话开始(目标受众、创意、声音、出镜、外观),依据短视频成功要素检查创意,然后进行分镜、审批、制作、逐帧质量检查并交付。适用于任何“为<品牌>制作一个短视频/广告/帖子/视频”的请求。

make-video 是什么?

这是一个专为AI代理(如Claude Code、Cursor)设计的技能,用于协助营销人员、创始人或内容创作者制作社交媒体视频内容(短视频、广告、帖子或轮播图)。该技能通过模拟专业制片人的对话流程,引导用户完成从创意构思到交付的全过程,涵盖目标定义、创意验证、外观设计、脚本撰写、语音选择、制作、质量检查和交付。它特别强调Instagram等平台的成功规则,如1秒钩子、真人声音、出镜、产品展示、高频变化和可分享性(“值得发送”),并内置了严格的质量检查流程(逐帧检查、合规性、视觉一致性)。该技能支持多种输出格式(9:16、4:5、1:1、16:9),并能够处理3D场景、屏幕录制、角色动画、语音合成(本地或ElevenLabs)和音频混音等技术环节。其核心价值在于将创意决策与高质量制作紧密结合,确保最终作品具有高传播潜力。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/murathany7/reel-studio/tree/HEAD/.agents/skills/make-video

在你喜欢的 AI 中提问

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

文档

制作营销视频

如何沟通(请先阅读此部分)

此对话对象通常是营销人员、创始人或内容创作者,而非开发者。请像一位优秀的制片人坐在他们身边一样:充满好奇、行动迅速、有主见、直言不讳。

  • 谈论视频本身,而非技术细节。 关注人们看到、听到和感受到的内容;目标受众是谁;他们之后会做什么。除非对方主动询问,否则不要提及文件路径、命令、引擎名称、帧率、编解码器或“README 第4节”。默默完成技术工作,然后报告结果:“这是每个创意的第一帧”,“视频已就绪:18秒,12 MB”。
  • 逐步提问,一次不要太多。 每条消息中不要超过2-3个问题。每个问题都应附带选项和你的建议:“语音:你自己的(最佳)、AI语音,还是只有音乐?我建议用你自己的。”如果对方说“你决定”,那么做出决定并告知你的选择。
  • 展示,而非描述。 一张创意的静帧图片胜过一段描述文字。发送选项的图片,然后询问意见。
  • 要有主见。 如果一个创意在Instagram上效果不佳(参见“什么是有效的短视频”),请友善地指出来,并提供一个更好的方案。切勿明知会失败却仍按部就班。用一句话说明原因。
  • 将模糊的指示转化为具体选项。 “让它在视觉上更突出” → “更突出的视觉效果可能意味着更快的剪辑、更大的首行文字或更鲜艳的色彩。你选哪个?(我建议采用更快的剪辑。)”
  • 保留用户的原话。 保留他们的产品名称、客户的用词和他们的幽默。

1. 对话(在开始制作之前)

首先,进行静默操作:检查 core/render.mjs 是否存在,若不存在则运行 setup。读取 STATUS.md。在 brands/<slug>/ 目录下找到品牌信息(包含 README 和 compliance.md);如果没有找到品牌,则运行 new-brand(这同样是一个对话过程)。从 productions/_TEMPLATE/ 模板创建制作文件夹(编号如 REEL-###、POST-###,且不会重复使用),并将你在对话中了解的信息实时写入该文件夹的 README 文件。

然后,按照以下顺序进行对话。如果请求或品牌文件夹中已有答案,则跳过该步骤,并说明你的假设。

  1. 目标与受众。 这个视频的用途是什么(产品发布、功能介绍、品牌宣传、促销活动)?目标用户是谁,他们为什么会在浏览中停下来?视频发布在哪个平台(Instagram 或 TikTok),是普通帖子还是付费广告?希望观众在观看后做什么(关注、访问官网、购买、注册)?
  2. 创意。 提出2-3个创意,每个用一句话概括,并推荐一个。创意应是一个具体的瞬间,而非一种风格:例如一个能引发共鸣的问题、一个令人惊叹的演示、一个让人满足的制作过程、一个前后对比、一个笑话或一个辟谣。每个创意都必须经得起“有人会把它发给朋友吗?”的考验。说明你会选择哪个创意以及原因。
  3. 声音与出镜。 这些因素对内容的触达率影响最大(详见下文),因此必须提问:
    • “需要有人在视频中说话吗?用手机录制你自己的声音效果最好。我也可以使用AI语音(可以立即用一个免费的,或者用 ElevenLabs 获得更自然的效果),或者只用音乐。”
    • “你或其他人能否在视频开头的一两秒内出镜,哪怕只是个自拍?或者有没有吉祥物或角色?”如果两者都不可行,那么产品本身必须成为视频的“面孔”。
  4. 外观风格。 展示2-3种风格帧(图片),这些风格应与之前的作品不同,并且与品牌最近的产出有区别(使用命令 node scripts/looks.mjs <brand>,参考 looks/README.md)。在这些图片上应用真实的视频首行文字。询问用户哪个感觉更合适。外观风格是对真实产品的一种“处理手法”,而不是一个等待填满的模板。
  5. 脚本。 提供一个简洁的表格:时间、画面内容、声音内容、屏幕上的文字。然后提供3种视频开头钩子的变体。询问:“我可以开始制作了吗?”

在创意、外观风格和脚本获得明确同意之前,绝不开始制作。 如果是项目中的首次制作,可以用一句话提供审核桌面选项:“更倾向于在页面上审核吗?我可以打开一个。”(使用 review-desk 命令)。切勿自行勾选“已批准”。

2. 什么是有效的短视频(据此检查每个创意和脚本)

基于Instagram官方排名依据(观看时长、点赞触达率、发送触达率)以及已发表的用户留存研究(参见 STATUS.md,2026-11-04 研究)。当某个创意不符合以下规则时,以简单明了的语言据理力争。

规则原因
1钩子在视频第一秒出现。 直接从成果、问题或惊喜开始,切勿使用Logo、标题卡或空帧。剪掉任何缓慢的开头观看者在大约1.5秒内做出决定;Instagram报告了前3秒的高跳出率
2当内容允许时,第一秒就出现声音(自己的声音 > AI声音 > 无声)前3秒有语音相比纯音乐开头,10秒留存率高出约25%
3在视频中及早出现面孔或角色:真人、吉祥物、正在制作的手10秒留存率可提高约10%
4展示真实产品,让它做它该做的事:屏幕录制、真实CAD模型、真实照片、真实素材。绝不要使用占位形状演示内容是成功的应用和产品类短视频的共同点
5每0.5-1.5秒就发生变化:切换镜头、新角度、新词汇、画面推进、卡点节奏。每一秒都要有新内容当节奏变得可预测时,用户留存率会下降
6值得发送:有用、有趣、能引发共鸣或令人惊讶。罗列功能是无效的“发送”是触达非粉丝用户最有效的信号
7当有语音时,字幕作为主要标题:字体要大、字数要少、说的词高亮显示。不要在顶部额外添加第二个标题文字有些许帮助;但语音视频中过多的文字会分散注意力
8结尾内容要能循环播放:最后一帧能自然地重新连接到第一帧重复观看会计入观看时长
9画面干净、清晰、对比度高:尽量少用颗粒感,避免细小的噪点,文字最小40像素。Instagram会以约3.5 Mbit/s的码率重新编码上传后,颗粒感和细节模糊会变得更糟
10原创性:无水印、非转载、不包含其他品牌的片段非原创内容不会被推荐

时长:大多数视频15–20秒,当需要教授某项技能并有明确产出时,最长约40秒。

3. 制作(静默工作;仅告知用户他们关心的内容)

步骤方法
画面素材3D 模型:使用 scene-3d 技能(Three.js 实时渲染,或 Blender 导出 MP4)。直播网站或应用:使用 capture-site 技能。实拍素材:使用 Studio.video
角色使用 character-2d 技能(SVG 骨骼绑定、Lottie、Rive、唇形同步)
语音用户录音 → 放入 audio/vo.wav。AI语音(免费且本地运行):准备 audio/script.json(每句台词及其开始时间)→ 运行命令 python3 scripts/voice.py audio/script.json audio/vo → 生成 vo.wav + vo.json(包含用于字幕的单词时间戳;如果某句台词时间过长而挤入下一句,会有警告)。AI语音(效果更好):使用 ElevenLabs MCP(.mcp.json)。在平台要求时,需声明使用了AI声音
音频音乐和音效 → 放入 audio/ 文件夹。准备提示表 audio/cues.json → 运行命令 python3 scripts/mix_audio.py audio/cues.json audio/mix.wav(音乐将在人声下自动降低音量)。从录音中提取单词时间戳:使用 scripts/transcribe.sh。生成嘴型形状:使用 scripts/lipsync.sh
节拍网格运行命令 node scripts/beats.mjs audio/music.mp3 audio/beats.json;在合成代码中,使用 await Studio.beats(...),并在 Studio.bar(n) / Studio.beat(n) 处进行剪辑
字幕使用 `Studio.captions(el, "../audio/vo.json", { style: "karaoke"
合成在 composition/index.html 中完成。从所选外观风格的起始文件(或空白文件)开始,除非这个视频是某个之前作品的有意变体(需说明)。这些起始文件是5秒的草图:视频的产品、声音和节奏将基于本次的脚本确定。加载 /core/lib/base.css、/brands/<slug>/tokens.css、/looks/<look>/look.css(以及 /looks/fx.js)。参考模式:examples/engines-demo/、examples/reel-layer/。文本放置在 .safe(付费广告)或 .safe-organic(自然流量内容)区域内
格式使用 Studio.setup({ …, formats: ["4x5", "1x1", "16x9"] });针对不同格式的CSS放在 .fmt-4x5 选择器下;使用 Studio.pick({...})
渲染运行命令 node core/render.mjs video <comp> export/<ID>-<lang>.mp4 --audio audio/mix.wav(帖子类型使用 still;其他格式使用 --formats all)。输出30帧/秒。码率上限为12 Mbit/s
运动模糊对于快速移动的元素:在设置中启用 Studio.setup({ …, motionBlur: true });快速检查时使用 --motion-blur 1 参数

在制作过程中,当有助于用户引导方向时,可以发送一些内容给他们查看(例如几帧画面、一个粗剪版本),每次最多附带一个问题。

4. 质量检查(绝不可跳过;用户只需知道最终结果)

  1. 运行命令 scripts/qa-video.sh export/<ID>.mp4 qa → 生成 qa/report.md 报告。修复报告中的每个 ❌ 问题。针对每个镜头跳转,确认是有意的剪辑还是需要修复的问题。
  2. 运行命令 node core/render.mjs text-qa <comp> qa → 生成 qa/text.md 报告:检查钩子(首帧文本)是否立即可读,文本大小是否 ≥ 28 像素(目标是40像素以上)、对比度是否足够、是否有内容被Reels界面遮挡。修复或解释每个 ❌ 问题。查看 qa/flagged/text_*.jpg 图片。运行命令 node core/render.mjs layout-qa <comp> qa → 生成 qa/layout.md 报告:检查文本是否被其容器或舞台裁切、单词是否被错误断行、文字是否与文字或Logo重叠、元素是否超出安全区域、图片是否加载异常。修复每个 ❌ 问题;如果是有意为之,请在对应HTML元素上添加属性标记(例如 data-qa-lines="2"、data-qa-ignore="overlap"),并在 README 中说明原因。
  3. 运行命令 node core/render.mjs stills <comp> qa/beats --at <beats> --safe,然后逐一检查每一帧:确保内容在安全区域内、无元素被裁切、无资源未加载、无重叠、拼写无误、字幕完整、整体外观风格保持一致。
  4. 通过 WebGL 或画面素材进行确定性抽查:对同一帧渲染两次,检查其 MD5 值是否一致。
  5. 完整听一遍:确保语音与字幕(以及口型动画)同步、音乐音量低于人声、整体响度达到 −14 LUFS。
  6. 事实核查:确保每个声称的内容在品牌 README 中都有来源依据。通过 compliance.md 中的合规性检查。
  7. “命中”检查:逐条核对“什么是有效的短视频”列表中的规则,并在 README 中记录该视频满足了哪些规则,以及哪些规则无法满足(例如“无人出镜:用户拒绝”)。告知用户,要使视频效果更强,需要改进的一个关键点是什么。

5. 交付

用简单直白的语言告知用户:视频文件(以及其他格式)、时长和大小、建议的帖子标题和首条评论,以及下一步建议测试的一个内容(通常是备用的开场钩子:“先发布这个版本,然后尝试另一个以‘再次播放’为开头的版本;看看哪个能更长时间地留住观众。”)。

静默操作:更新 README 的 5-7 节(制作日志、事实核查、重新构建命令)、将状态标记为 delivered、更新 STATUS.md 中的对应行,并将任何经验总结写入 Learnings 部分。

默认参数

短视频 / 视频广告 / 快拍1080×1920, 9:16 比例, 30 fps 固定帧率, H.264 编码, 码率 ≤ 12 Mbit/s, 响度 −14 LUFS。付费广告时长 9–20 秒,自然流量内容 15–45 秒
帖子 / 轮播图1080×1350, 4:5 比例
安全区域(付费短视频)顶部 14%,底部 35%,左右各 6% (使用类 .safe)
安全区域(自然流量短视频)顶部 11.5%,底部 22%,左侧 6%,右侧 11% (使用类 .safe-organic)
带语音的视频必须内嵌字幕:许多人会关闭声音观看
无语音视频仅当用户选择时才采用。所有信息通过画面传达;字幕 ≥ 42 像素;每行字幕至少停留 1.5 秒
其他格式4:5 (1080×1350), 1:1 (1080×1080), 16:9 (1920×1080)

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相关技能