Reels with reel-kit
您在用户的计算机上编辑真实素材。您需要一个能够运行 shell 命令并读取文件的工具(例如 Claude Desktop 中的 Desktop Commander 扩展或 Claude Code)。如果没有,请告知用户并引导其查阅 docs/guia-windows.md。不要尝试通过聊天沙箱中的上传文件来完成此操作。
设置
- 找到
reel-kit文件夹(如果找不到,询问用户一次)。所有命令都从该文件夹运行。 - 首次使用:运行
npm install和pip install numpy。检查ffmpeg -version和node -v是否正常工作。 - 在此技能
styles/文件夹中,选择与主题匹配的样式文件(yoga.md、aikido.md)。如果没有合适的,从yoga.md开始,并与用户协商差异。询问用户视频所展示的事实(姓名、日期、地点、URL);切勿编造。
工作流程
- 查看素材。 对于每个长视频:运行
python tools/reel.py sheet <video> --every 10。查看out/sheets/中的截图图片,找到好的片段。在选择具体时间之前,对有价值的部分使用更精细的选项(--every 2)。 - 选择剪辑。 编写
out/<name>-clips.tsv,制表符分隔,每行一个剪辑:id<TAB>源路径<TAB>开始<TAB>结束(秒或 mm:ss)。遵循样式文件确定剪辑长度以及每个剪辑必须包含的内容。 - 剪切。 运行
python tools/reel.py cut out/<name>-clips.tsv。每个剪辑变为 1080x1920 的竖版视频,存储在public/clips/中;横版素材会根据运动进行裁剪(--frame center表示固定中心裁剪,--frame keep表示缩放但不跟踪移动)。仅当电脑有 NVIDIA 显卡时添加--gpu。该命令会为每个剪辑输出一行 JSON,包含其精确时长。 - 描述视频。 创建
reels/<name>.json(参见下方格式),粘贴步骤 3 中的剪辑行。 - 渲染。 运行
python tools/reel.py render <name>,生成out/<name>.mp4,音量已针对社交媒体标准化。 - 检查。 提取 3-4 帧(
ffmpeg -i out/<name>.mp4 -vf "fps=1/4,scale=360:-2,tile=4x1" -frames:v 1 out/<name>-check.jpg),并在告知用户完成之前查看这些帧。告知用户文件路径和时长。
用户随后要求的更改("删除慢速部分"、"不要音乐"):编辑 TSV 或 JSON 文件,仅运行后续步骤。通过使用新名称(<name>-v2)保留早期版本,以便用户可以回退。
reels/.json
{
"clips": [{ "file": "clips/a1.mp4", "seconds": 6.5 }],
"transition": "fade",
"fadeSeconds": 0.5,
"clipVolume": 0,
"music": { "file": "music/calm.mp3", "volume": 0.5 },
"accent": "#7FA88B",
"intro": [{ "kicker": "Yoga · Murcia", "title": "Clase abierta", "sub": "Sábado 10:00" }],
"outro": { "text": "Reserva tu plaza", "url": "example.com", "image": "poster.jpg", "seconds": 3.5 }
}
- 仅
clips是必需的。路径相对于public/;将音乐放在public/music/中,图像放在public/中。 transition:"cut"(硬切,默认)或"fade"。clipVolume:1 保留原始声音,0 静音。音乐在结束时自行淡出。intro:文本卡片,每张 2.5 秒,显示在第一个剪辑上方。outro:结束画面,包含文本、URL 和/或图像(海报、标志)。- 仅使用用户提供或用户确认拥有使用权的音乐。
规则
- 视频处理工作繁重。每次只运行一个 ffmpeg 或渲染任务;这些工具本身以低优先级运行。
- 仅当用户希望手动预览和调整时才使用
npm run studio。 - 要更改外观本身(字体、布局),编辑
src/Reel.tsx;Remotion 的官方技能(npx skills add remotion-dev/skills)对此有帮助。