视频工艺 是做什么的?
两项工作,一个标准。剪辑他人录制的素材,或制作基于品牌套件和文案的影片。无论哪种,工作都在渲染前规划好,由精确的脚本渲染,并经测量检查后才通知完成。
让视频看起来专业完成的要素,按顺序:
- 结构。 前3秒内有一个钩子,一个想法,没有任何不值得占用时间的内容。
- 节奏。 剪辑和运动落点在话语和节拍上;没有死寂,没有急促。
- 工艺细节。 每个剪辑周围留出空气,可读的字幕,减速到位的运动,足够响且从不削波的音频。
- 证明。
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
- 首先阅读转录并决定结构:哪些内容完全删除(整段剪辑读起来干净;句中多次剪辑读起来紧张),以及钩子是什么。如果需要,手动将整段决策放入EDL的
segments中。 plan_cuts.py移除静音(缩短为一个呼吸,而不是到零)、填充词和废弃的重拍(保留最后一次)。静音按每个录音测量,每个边缘都对齐到真实音频,填充不对称(前80毫秒,后140毫秒)且从不延伸到已删除的词。阅读其列表:强调的重复可能看起来像重拍。- 与相关人检查点(针对较长的内容):前后时长、删除的段落、丢弃的重拍。他们的备注成为EDL编辑。
render.py在一个ffmpeg图中完成所有操作:帧精确修剪、每个剪辑的8毫秒淡入淡出、恒定帧率、放大插入、重制画面、字幕、语音润色、避让音乐和两遍响度处理。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
- 首先品牌套件(
references/brand-intro.md):官方Logo文件、十六进制颜色、字体、确切措辞、语域、格式、声音,以及每个数字的来源。切勿重绘或重新着色Logo;切勿编造声明、客户或产品UI。 - 节拍表在先于代码: 每个节拍附带其时间、移动内容、缓动方式和声音。选择一个语域(高端、干净、技术、大胆、有趣)并以此缩放整个时间线。
- 基于
assets/film.js构建: 每个像素都是t的函数。Film.tween、Film.spring、Film.stagger、Film.random(seed);无CSS动画、定时器或Date.now。在浏览器中打开HTML可实时擦洗。 - 每个节拍处静帧,然后草稿,再最终版。 在渲染视频前修复静帧显示的问题。最终版以约2–5帧/秒渲染;草稿快10倍。
- 声音是影片的一部分。
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.py | EDL:移除停顿、填充词、重拍,附带原因 |
scripts/captions.py | 编辑后时间线上的SRT、样式ASS和提示JSON |
scripts/render.py | EDL → 完成视频(预设、重制画面、字幕、音乐、响度) |
scripts/qa.py | 格式、时长、黑帧、冻结、静音、响度、词汇、联系单 |
scripts/sfx.py | 合成音效套件 |
scripts/render_film.mjs | HTML影片 → MP4(草稿、带运动模糊的最终版、静帧、海报) |
scripts/doctor.py | 已安装和缺失的内容 |
assets/film.js | 确定性运动引擎 + 带擦洗器的浏览器预览 |
films/ | brand-sting和launch模板 |
references/ | 编辑、运动、品牌开场、声音、平台、ffmpeg、remotion |