Communitygithub.com

视频工艺

剪辑录像或根据品牌素材制作视频,并通过量化检查确保专业完成度。支持从转录、修剪、字幕到音视频优化的全流程。

视频工艺 是什么?

这是一个面向视频编辑与制作的AI智能体技能,适用于Claude Code、Cursor等编码助手平台。其核心思想是“先规划后渲染,渲染后测质量”,确保每一次交付都经过严格检查。技能分为两大模块:**剪辑**(编辑已有录像)和**制作**(基于品牌素材和文案生成完整影片)。剪辑功能支持逐词转录、自动去除停顿/填充词/重拍、跳切放大、多种字幕样式(纯净、卡拉OK、短视频冲击型)、画面重制为9:16或1:1、语音降噪、音乐自动避让语音以及平台响度标准化。制作功能可生成品牌开场动画、logo揭示、产品发布视频、社交广告和动态排版等,所有动画逐帧渲染自HTML代码,配合合成的音效。此外,`qa.py`脚本在交付前自动检测响度、黑帧、安全区域等指标,并提供联系单供人工复核。整个技能强调诚实内容(只使用真实Logo、有来源的数据和授权音乐),并以“完成即核验”为终止条件。

兼容平台~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/sridhar-raj/video-craft/tree/HEAD

在你喜欢的 AI 中提问

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

文档

视频工艺 是做什么的?

两项工作,一个标准。剪辑他人录制的素材,或制作基于品牌套件和文案的影片。无论哪种,工作都在渲染前规划好,由精确的脚本渲染,并经测量检查后才通知完成。

让视频看起来专业完成的要素,按顺序:

  1. 结构。 前3秒内有一个钩子,一个想法,没有任何不值得占用时间的内容。
  2. 节奏。 剪辑和运动落点在话语和节拍上;没有死寂,没有急促。
  3. 工艺细节。 每个剪辑周围留出空气,可读的字幕,减速到位的运动,足够响且从不削波的音频。
  4. 证明。 qa.py通过且联系单已被查看。

快速路径

需求操作
“收紧/清理这段录音”转录 → 规划剪辑 → 审阅EDL → 渲染 → QA
“从中制作一个Short/Reel/TikTok”同上方,外加 captions.py --style punch,render.py --preset shorts --fit crop(或对屏幕录制使用blur)
“添加字幕”transcribe.py → captions.py → render.py --captions(或交付.srt文件)
“添加音乐”render.py --music bed.mp3(自动在话语下压低)
“让它足够响/修复音频”render.py --voice --denoise,目标参见platforms.md
“品牌开场/Logo揭示/短促提示”复制films/brand-sting,填写品牌套件,静帧 → 草稿 → 最终版 → QA
“发布视频/宣传片/广告”复制films/launch,撰写文案,选择格式,静帧 → 草稿 → 最终版 → QA
“检查此视频”qa.py video.mp4 --sheet sheet.jpg [--safe]
项目已在Remotion上references/remotion.md

要求

剪辑需要ffmpeg 6+和Python 3.9+。转录:pip install faster-whisper(或openai-whisper,或whisper.cpp)。影片:Node 18+和Playwright(npm i -D playwright && npx playwright install chromium)。字幕使用libass烧录(当ffmpeg支持时),否则使用Pillow绘制(pip install pillow)。运行python3 scripts/doctor.py查看已安装内容。

所有脚本都接受--help。每个任务在一个文件夹中工作:work/存放中间文件,out/存放交付物。

剪辑素材

python3 scripts/transcribe.py raw.mp4 -o work/words.json            # 逐词转录
python3 scripts/plan_cuts.py raw.mp4 --words work/words.json -o work/edl.json
python3 scripts/captions.py work/words.json --edl work/edl.json --style clean -o work/cap
python3 scripts/render.py work/edl.json -o out/final.mp4 --preset youtube \
        --captions work/cap.cues.json --music bed.mp3 --voice --zoom auto
python3 scripts/qa.py out/final.mp4 --edl work/edl.json --sheet out/sheet.jpg \
        --words work/words.json --words-check
  1. 首先阅读转录并决定结构:哪些内容完全删除(整段剪辑读起来干净;句中多次剪辑读起来紧张),以及钩子是什么。如果需要,手动将整段决策放入EDL的segments中。
  2. plan_cuts.py移除静音(缩短为一个呼吸,而不是到零)、填充词和废弃的重拍(保留最后一次)。静音按每个录音测量,每个边缘都对齐到真实音频,填充不对称(前80毫秒,后140毫秒)且从不延伸到已删除的词。阅读其列表:强调的重复可能看起来像重拍。
  3. 与相关人检查点(针对较长的内容):前后时长、删除的段落、丢弃的重拍。他们的备注成为EDL编辑。
  4. render.py在一个ffmpeg图中完成所有操作:帧精确修剪、每个剪辑的8毫秒淡入淡出、恒定帧率、放大插入、重制画面、字幕、语音润色、避让音乐和两遍响度处理。
  5. qa.py,然后查看联系单。--words-check重新转录结果并命名任何被剪辑吞掉的词。

判断、数字和失败模式:references/editing.md。音频:references/sound.md。

制作影片(品牌开场、发布短片、广告)

cp -r films/brand-sting my-film && python3 scripts/sfx.py --out my-film/sfx
# 编辑 my-film/index.html 中的 PARAMS(或传递 --params '{"name": "...", ...}')
node scripts/render_film.mjs my-film/index.html --stills 0.5,1.6,2.4,3.5 -o work/stills  # 查看它们
node scripts/render_film.mjs my-film/index.html --draft -o work/draft.mp4                 # 判断节奏
node scripts/render_film.mjs my-film/index.html --blur 4 -o out/intro.mp4                 # 最终版
python3 scripts/qa.py out/intro.mp4 --no-gaps --sheet out/intro.sheet.jpg --safe
  1. 首先品牌套件(references/brand-intro.md):官方Logo文件、十六进制颜色、字体、确切措辞、语域、格式、声音,以及每个数字的来源。切勿重绘或重新着色Logo;切勿编造声明、客户或产品UI。
  2. 节拍表在先于代码: 每个节拍附带其时间、移动内容、缓动方式和声音。选择一个语域(高端、干净、技术、大胆、有趣)并以此缩放整个时间线。
  3. 基于assets/film.js构建: 每个像素都是t的函数。Film.tween、Film.spring、Film.stagger、Film.random(seed);无CSS动画、定时器或Date.now。在浏览器中打开HTML可实时擦洗。
  4. 每个节拍处静帧,然后草稿,再最终版。 在渲染视频前修复静帧显示的问题。最终版以约2–5帧/秒渲染;草稿快10倍。
  5. 声音是影片的一部分。 scripts/sfx.py合成套件(撞击、轰鸣、呼啸×3、上升、爆发、滴答、钟声、背景);提示音位于影片配置中并由渲染器混合并设置响度。撞击的峰值落在揭示帧上。

模板:films/brand-sting(3–7秒Logo揭示,五种语域,16:9 / 9:16 / 1:1)和films/launch(15秒钩子→问题→揭示→证明→行动号召,三种格式,9:16在平台安全区域内,*word*强调)。将它们作为起点;当需求需要时改变结构。

原则(时间、按角色的缓动、交错、字体大小、颜色、有原因的画变、应避免的通用外观以及捕捉它们的测试):references/motion.md。

始终适用的规则

  • 每次修剪都重新编码。 流复制修剪会对齐到关键帧。
  • 交付的所有内容使用恒定帧率;H.264 + yuv420p + AAC + +faststart。
  • 按测量标准响度:网页和社交为-14 LUFS / ≤ -1 dBTP,播客为-16。
  • 文本在安全区域内:在9:16上,顶部288像素、底部672像素和右侧192像素(1080×1920时)内无内容。1080分辨率下字号≥28像素。
  • 诚实内容:真实Logo、有来源的真实数字、真实产品UI;当音乐、语音或素材是生成时需说明。
  • 仅限授权音乐。 切勿从视频或流媒体服务中提取音频。
  • 完成意味着核验:qa.py通过,联系单被查看,且任何无法检查的内容被明确说明。

文件

路径内容
scripts/transcribe.py带词时间的words.json(faster-whisper / whisper / whisper.cpp)
scripts/plan_cuts.pyEDL:移除停顿、填充词、重拍,附带原因
scripts/captions.py编辑后时间线上的SRT、样式ASS和提示JSON
scripts/render.pyEDL → 完成视频(预设、重制画面、字幕、音乐、响度)
scripts/qa.py格式、时长、黑帧、冻结、静音、响度、词汇、联系单
scripts/sfx.py合成音效套件
scripts/render_film.mjsHTML影片 → MP4(草稿、带运动模糊的最终版、静帧、海报)
scripts/doctor.py已安装和缺失的内容
assets/film.js确定性运动引擎 + 带擦洗器的浏览器预览
films/brand-sting和launch模板
references/编辑、运动、品牌开场、声音、平台、ffmpeg、remotion

相关技能