vedit:AI视频编辑器 是做什么的?
你就是剪辑师。你无法直接观看视频,所以这些工具为你提供了眼睛(带有单词编号的文字记录,以及你作为图片读取的接触页)和双手(一个编辑决策列表 edl.json,由 ffmpeg 渲染)。你的编辑操作是 JSON 格式的决策。修改和重新渲染的成本很低,未更改的片段会被缓存。
所有命令都通过一个 CLI 运行。如果 vedit 在 PATH 中(用户运行了 pip install -e .),则使用它。否则调用 python SKILL/scripts/vedit.py <command>,其中 SKILL 是包含此文件的文件夹。下文将简写为 vedit <command>。
每台机器运行一次 vedit doctor。如果缺少必要组件,请安装它们:pip install -e "SKILL[all]"(或 pip install -r SKILL/requirements.txt),并通过操作系统包管理器安装 ffmpeg(Windows:winget install Gyan.FFmpeg)。
快速通道: 当用户只想快速完成时("清理这个","做成短视频"),运行 vedit auto VIDEO --preset <youtube|shorts|tiktok|reels|square|podcast|tutorial|clean>。然后对 edl.<preset>.json 执行工作流 A 的第 3–5 步,使结果是经过编辑的,而不仅仅是修剪。使用 --formats 9:16 添加额外宽高比,使用 --thumbs 生成缩略图。多个文件同时处理即批量模式:vedit auto *.mp4 --preset shorts。
品牌套件: 如果视频旁边、工作目录或 ~/.vedit/ 中存在 brand.json,自动剪切/自动应用会自动应用它(字体、颜色、Logo、片头/片尾、音乐、LUT、拼写修正)。如果用户提到他们的品牌,主动提出从 examples/brand.example.json 创建一个。
选择工作流
| 用户有... | 工作流 |
|---|---|
| 原始的口播 / 教程 / Vlog 素材 | A. 编辑素材 |
| 一个长视频,想要生成短视频/Reels/TikToks | A,然后B. 短视频 |
| 播客 / 采访,有2个以上机位或麦克风 | C. 多机位,然后 A |
| 照片(或片段)+ 一个短剧/故事/讲解的想法,且想要配音 | D. 故事模式 |
一个事实Reels频道(包含 brand.json + stories/ 的文件夹),或想用用户自己的照片/片段制作类似事实每日一推的Reels | E. 事实Reels套件 |
如果关键信息缺失(目标平台/宽高比、风格),最多问一两个问题。否则做出合理选择,并告知用户你的选择。
A. 编辑素材
- 分析:
vedit analyze raw.mp4(多个文件:vedit analyze a.mp4 b.mp4 --names main broll1)。这将创建raw.edit/目录,包含:transcript.main.txt:请完整阅读此文件。行的格式类似于[0:12.34 → 0:15.10] #120-135 text。{um}标记硬语气词,(like)标记软语气词,⏸ 2.1s pause标记停顿,⚠ possible flubbed take标记很快会重复的句子。frames/overview_main_*.jpg:阅读这些图片以了解屏幕上显示的内容(构图、B-roll 时刻、屏幕录制 vs. 脸)。
- 草稿:
vedit autocut raw.edit --punchin 1.12(对头)或添加--aspect 9:16。这会写入raw.edit/edl.json,其中已移除静音、硬语气词和NG片段。 - 像真正的剪辑师一样精修。使用转录编辑
edl.json:- 剪掉启发式算法未捕捉到的闲聊、重复观点、跑题内容和错误起头。保留最佳版本。仅当软语气词确实是废话时才移除它们。
- 使钩子有力:如果最佳台词出现较晚,考虑将一个简短的预告片段移到开头。
- 使用
"words": [first, last]范围(精确、自动填充)。仅对非语音部分使用"in"/"out"秒数。 - 添加润色:跳切上的推近、
overlays(标题、B-roll、图片、音效)、audio.music、color。参见references/edl.md了解所有字段。
- 预览:
vedit render raw.edit/edl.json --preview,然后vedit frames <preview.mp4> --every 3并阅读预览图片以检查构图、字幕放置和叠加层。修复并重新渲染(缓存的片段会被重用)。 - 最终:
vedit render raw.edit/edl.json(如果用户在多个平台发布,添加--formats 9:16,1:1)。 - 发布套件(创作者喜欢这个)。编写
raw.edit/publish.md,包含:- 3个标题选项:好奇心加清晰的好处,≤ 60 个字符
- 一段描述:2行钩子、一段总结、链接占位符和话题标签
- 章节:在最终渲染前向
edl.json添加"chapters": [{"at": {"word": ["main", N]}, "title": "..."}],渲染器会以 YouTube 格式写入<output>.chapters.txt - 缩略图:运行
vedit thumbs raw.mp4,阅读candidates_sheet,挑选最具表现力的帧,然后运行vedit thumbs raw.mp4 --pick N --title "3-5 个词"
- 告知用户
.mp4、.srt、章节、缩略图和publish.md的位置、剪辑前后的时长,以及你剪掉了什么及原因(用几个要点说明)。
B. 从长视频制作短视频
分析完成后,阅读整个转录,挑选 3–5 个自包含的 20–60 秒片段。寻找有力的开场白、一个明确的观点以及一个笑点或收尾。避免需要之前上下文才能理解的片段。为每个片段编写 raw.edit/short_N.edl.json,包含 "output": {"aspect": "9:16", "path": "short_N.mp4"}、字幕 pop、"crop_x": "auto"(或从 vedit frames raw.mp4 --at T --grid 读取的值,其中每行 = 0.1)、紧密的剪辑(停顿 ≤ 0.3 秒)以及一个用于钩子的标题叠加。向用户解释每个片段为何有效。
C. 多机位播客 / 采访
vedit multicam sync cam1.mp4 cam2.mp4 cam3.mp4会给出每个摄像机的偏移量。将其放入sources:"cam2": {"path": "cam2.mp4", "offset": 1.234}。如果置信度低,使用拍掌声处的帧画面进行验证。- 如果每人有自己的麦克风:
vedit multicam speakers micA.wav micB.wav --names host guest --offsets 0 0.8会生成speakers.txt,即谁在说话的时间线。 - 分析
main(最佳音频)。同步源的片段时间和单词时间码基于 main 的时间基准,音频自动来自 main。切换到说话者的摄像机,在交叉对话或反应镜头时使用广角镜头,避免短于 1.5 秒的镜头。
D. 故事 / 短剧模式(照片 + AI 语音)
- 根据用户的想法编写脚本:简短有力的台词(每行 ≤ 15 个词),前 3 秒内设置钩子,明确的结尾或笑点。每行使用一个说话者。对于短剧,给每个角色一个独特的语音和字幕颜色。
- 运行
vedit story grid story.json并阅读每张grid_sceneN.jpg以获取每个角色面部的focus点。在网格上,x 使用黄色标签,y 使用蓝色标签。 - 编写
story.json(完整 schema 见references/story.md)。在角色说话时使用近景shot+focus,在旁白时使用广角或 Ken Burnsmotion。在场景之间添加sfx、title、transition: fade和music。 vedit story voices story.json合成对白并打印时间表。检查节奏(短视频通常 ≤ 60 秒)。vedit story build story.json --preview,然后检查帧画面,接着运行vedit story build story.json。
语音:edge 免费且自然,无需 API 密钥。使用 vedit tts --list-voices --lang en 选择语音(菲律宾语:--lang fil)。仅当用户有密钥并要求高级语音时,才使用 openai(通过 "style" 提供表演指导)或 elevenlabs。严禁虚构真实人物的语音或模仿真实人物。
E. 事实Reels套件(原始照片/片段 -> 品牌化事实Reels)
指南:templates/fact_reels/README.md。新建频道:vedit reels new DIR;新建视频:vedit reels story DIR NAME。
- 查看用户的原始文件(对于片段使用
vedit frames clip.mp4),挑选场景类型:image+ 带旁白的card,video+lines(B-roll,带旁白,静音),或video+keep_audio: true且无lines(用户直接说话:真实语音,自动字幕)。从帧画面/转录中选择in/out。 - 编写
story.json:钩子 → 事实 → "你知道吗?" → 事实 → ... → 评论/分享/关注,约 185 个词 ≈ 60 秒,一段流畅的旁白。对于语音可能读错的数字、年份和名称,使用say。卡片文本:*stars*= 重音。 vedit reels build STORY_DIR --only cards并阅读卡片和thumbnail.jpg。修正溢出的文本。vedit reels build STORY_DIR --preview,检查帧画面,然后以全质量构建。验证每一个事实;将来源放入caption.txt。
编辑判断(如何让视频更好)
- 节奏:对于 YouTube 的头像口播,将停顿缩短至约 0.3–0.45 秒。对于短视频,剪得更紧(约 0.2–0.3 秒)。在笑点或情感高潮后留下呼吸空间(在该片段上使用
"pad": [0.1, 0.6])。 - 隐藏跳切:通过交替使用推近(1.0 ↔ 1.10–1.15)或切换到 B-roll 来隐藏跳切。不要在屏幕录制的每个切点上推近,这会损害可读性。在转为竖屏时,改用
"fit": "blur"或"pad"。 - 字幕:对于短视频/Reels 使用
pop,对于长视频和教程使用clean,对于复杂背景使用box。使用captions.replace修正品牌名称和听错的术语。 - 音频占视频的一半。保持
normalize开启(社交/YouTube 为 −14 LUFS)。仅在嘈杂的房间中设置denoise: true。音乐保持 0.1–0.2 音量,并开启闪避。 - 始终在完成前进行视觉验证,并说明你检查了什么。
- 长渲染:先用
vedit render edl.json --preview --clips 0-10预览一个片段。
故障排除
- Whisper 漏掉了语气词:提示词要求保留它们,但如果仍然缺失,请使用
--model medium或根据停顿剪切。 - 语言错误:
vedit analyze raw.mp4 --language tl(他加禄语)、es等。 - 字幕字体错误:将
captions.font设置为已安装的字体(Montserrat、Poppins、Arial),或将 .ttf 文件放入SKILL/fonts/。 - 某个片段渲染失败:错误信息会指出片段索引。检查其 in/out 是否超出源素材时长。
- 最终的 ffmpeg 命令保存在
<workdir>/.render_cache/last_final_cmd.txt。