Communitygithub.com

clabza16/skills-edicion

编辑一个竖版视频(如 Instagram Reel 或 TikTok),为说话的人添加缩放、钩子、标题、卡拉OK字幕、自动打字聊天、Finder 风格列表、扇形截图、分屏和关注按钮。当有人要求“编辑这个视频”、“让它更动感”、“加字幕”、“加缩放和特效”、“看起来专业”、“剪成 Reels”或提供一个竖版说话视频时使用。基于 `public/plan.json` 用 Remotion 渲染。

skills-edicion 是什么?

该技能专为 AI 编码助手(如 Claude Code)设计,用于自动生成竖版口播视频的后期编辑层,输出可直接发布到 Instagram Reels 或 TikTok 的成品。用户只需提供已剪辑好的竖版视频(1080×1920,去除沉默和坏条),技能会通过分析转录文本和镜头切换点,智能地生成一个完整的编辑计划(plan.json),该计划控制 Remotion 模板渲染最终视频。核心编辑元素包括:每个镜头交替缩放、从第一帧就可见的钩子(hook)、与语音时间精准对齐的标题和卡拉OK字幕、模拟 AI 对话的打字效果、Finder 风格列表、扇形排列的截图、分屏画面以及结尾的关注按钮。技能强调内容真实性(所有屏幕上的元素必须真实)和良好的观看节奏(每3-5秒一个新元素,但一次只展示一个想法)。它运行在 macOS 和 Windows 上,依赖 ffmpeg、whisper.cpp 和 Node.js,渲染使用 Remotion。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clabza16/skills-edicion/tree/HEAD/editar-reel

在你喜欢的 AI 中提问

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

文档

editar-reel

接受一段竖版视频,其中有人面对镜头说话(已剪辑好:无沉默和坏条),并准备好供上传。不改变说话内容:仅在顶部添加编辑层。

模板位于 plantilla/(Remotion)。屏幕上发生的一切都描述在 plantilla/public/plan.json 中;你的任务是凭判断编写该计划,而不是编程。

前提条件(开始前请检查)

  • ffmpeg 和 whisper-cli(whisper.cpp)。Mac:brew install ffmpeg whisper-cpp。Windows:winget install Gyan.FFmpeg 以及 https://github.com/ggml-org/whisper.cpp/releases 的 whisper.cpp 压缩包(将 whisper-cli.exe 放入 PATH)。
  • Node 18 或更新版本(Windows:winget install OpenJS.NodeJS),并安装 Google Chrome。
  • 如有缺失,请获得许可后自行安装;如果安装程序要求输入密码,请让用户输入。不要半途而废。
  • 在 Windows 上,.sh 脚本在 Git Bash 中运行(Windows 上的 Claude Code 使用它)。如果没有 bash,请使用等效命令。

步骤

1. 准备 Reel 文件夹

cp -R <此技能路径>/plantilla ~/reels/<reel名称>
cd ~/reels/<reel名称> && npm install
cp <用户视频> public/video.mp4

视频必须为竖版 1080×1920(如果是竖版 4K,请使用 ffmpeg -i in.mov -vf scale=1080:1920 -c:a copy public/video.mp4 缩小;切勿裁剪放大脸部:人们更喜欢看到自己留有余地)。

2. 转录并查找剪辑点

bash <此技能路径>/scripts/transcribir.sh public/video.mp4 public
bash <此技能路径>/scripts/cortes.sh public/video.mp4
  • transcribir.sh 生成 public/palabras.json(每个单词及其秒数)并输出文本。请完整阅读。 whisper 可能会弄错专有名词(例如将“Claude”识别为“Cloud”):使用 correcciones.json 通过 python3 <此技能路径>/scripts/palabras.py public/tokens.json public/palabras.json correcciones.json 修复。如果某个单词无法理解,请询问用户;不要猜测。
  • cortes.sh 输出镜头切换的秒数。这些将进入计划的 cortes_s 字段。

3. 定位脸部位置

抽取 6-8 个均匀分布的帧,查看脸部高度(像素,基于 1920):

for t in 1 5 10 15 20 25; do ffmpeg -y -v error -ss $t -i public/video.mp4 -frames:v 1 /tmp/cara_$t.jpg; done

cara_y = 眼睛或鼻子的高度(典型值:700-900)。缩放以此为中心,标题放在头顶上方:同时记录在脸部最高帧中头顶的位置。如果头顶在 y=450 附近,则上方放不下标题:请减少标题数量。

4. 编写计划

复制 plantilla/public/plan.json 的格式(这是一个完整示例)。如果没有其他视频或截图,请删除 split 和 pantallazos:它们指向示例文件,这些文件不在仓库中。cortes_s 必须按顺序且不重复。规则:

节奏

  • 每个镜头一个缩放(zooms,每个剪辑段一个),交替景别:1.0 → 1.16 → 1.0 → 1.26……缩放变化在剪辑处可掩盖跳跃。切勿超过 1.3:否则会显得像素化。
  • 每 3-5 秒屏幕上有新内容,但一次一个想法:标题和聊天切勿同时出现。

钩子(前 2 秒决定一切)

  • gancho.linea 从第一帧起可见,无入场动画:同时也是封面。
  • 不要重复说话内容。 如果说话人说“300 万人看过这个”,文本应写别的内容以产生冲击(例如“这是我的 AI 做的”)。如果重复,就成了字幕,机会就浪费了。
  • 第一帧的最佳选择是动态内容:使用 split 将结果(爆款视频、前后对比)放在上方,人放在下方,在第一句话结束时收起。

每个元素在其对应单词处出现

  • 在 palabras.json 中查找提及该事物的单词的精确秒数,并让该元素在该秒前 0.15-0.3 秒出现。在单词之后才出现的标题会感觉滞后。
  • lista[].filas[].marcar_s 等于说话人提及该行的秒数。

何时使用何种元素

说话内容元素
用几句话概括的想法(“秘诀:skills”)titulos(短大写标注 + 文本;*单词* 会高亮)
请 AI 做了某事chat,内容为原文消息(如不确定,请询问用户)
具体名称:文件夹、文件、工具、步骤lista(最多 7 行)
“看结果”pantallazos(最多 3 张实际结果的截图)或带视频的 split
结尾“关注我”cierre,包含用户信息

诚实(不可妥协): 屏幕上只能显示真实内容。聊天显示实际发送的消息;数字显示实际数字。如果你不确定,请询问或省略。

安全区域: 模板已将所有内容放置在 x 110-900 和 y 250-1290 之间,远离 Instagram 的按钮和 caption。不要将元素移出该区域。

5. 全量渲染前检查单帧

npx remotion still Reel out/f0.png --frame=0

为每个元素抽取一帧(在该元素出现的秒数 × 30 处)并查看它们。检查:脸部从未被遮挡(列表和截图除外,它们会故意使背景变暗),文本未被截断,钩子在帧 0 可读。

如果渲染卡在“Waiting for root component to load”,请使用系统 Chrome:--browser-executable="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"(Mac)或 --browser-executable="C:\Program Files\Google\Chrome\Application\chrome.exe"(Windows)。

6. 渲染与最终审阅

npx remotion render Reel out/reel.mp4
ffmpeg -v error -i out/reel.mp4 -f null - && echo "文件健康"
ffmpeg -y -v error -i out/reel.mp4 -vf "fps=1,scale=216:384,tile=10x3" -frames:v 1 out/hoja.jpg

查看 out/hoja.jpg(每秒一帧的拼贴图)。如果某个帧出现“马赛克”或黑色(Remotion 中视频偶尔会出现),请单独使用 remotion still 渲染该帧并使用以下命令覆盖:ffmpeg -i out/reel.mp4 -i fix.png -filter_complex "[0:v][1:v]overlay=enable='eq(n,N)'" -c:a copy out/reel_ok.mp4。

之后,使用 sonido-reel 技能为视频添加音乐、音效和最终音量。

已知问题

  • 字幕中单词连在一起(例如“Yesto”):渲染时 <span> 之间的空格会丢失。模板已通过边距分离;如果逐字添加文本,请同样处理。
  • 不要对视频使用 filter: blur() 或 backdropFilter:会导致黑色或马赛克帧。如需变暗,请在视频上叠加一层半透明颜色层。
  • 分屏中上方的视频自带文本:调整 recorte_y 以显示干净的区域,或使用 broll_desde_s 选择其他秒数。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能