Communitygithub.com

vedit:AI视频编辑器

通过分析文字记录和帧画面,编辑原始视频或根据照片制作视频——包括去除静默/语气词/NG片段、添加字幕、将长视频转为短视频/Reels、多机位播客、B-roll、配乐、语音润色,以及根据照片和脚本生成AI配音的短剧/故事。

vedit:AI视频编辑器 是什么?

vedit 是一个 AI 视频编辑技能,它赋予 AI 代理“眼睛”和“双手”来编辑视频,无需观看原始视频。它通过生成带单词时间码的文字记录(转录)和缩略图帧画面,让 AI 理解视频内容;并通过编辑决策列表(edl.json)进行剪辑操作,最终由 ffmpeg 渲染输出。此技能支持多种工作流程:从基础的素材分析、自动剪切静默和语气词、手动精修,到从长视频中提取短视频/Reels、处理多机位播客/访谈,以及基于照片和脚本生成带 AI 配音的故事/短剧。它还包含品牌套件支持(自动应用字体、颜色、Logo、音乐等)和事实Reels生产流水线,非常适合内容创作者、播客主、营销人员和教程制作者使用。该技能通过一个统一的 CLI 工具 `vedit` 运行,跨平台兼容,自动处理缓存和渲染,并始终建议在最终输出前进行视觉验证。

兼容平台~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/OpenOrbitLabs/Vedit/tree/HEAD

在你喜欢的 AI 中提问

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

文档

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/TikToksA,然后B. 短视频
播客 / 采访,有2个以上机位或麦克风C. 多机位,然后 A
照片(或片段)+ 一个短剧/故事/讲解的想法,且想要配音D. 故事模式
一个事实Reels频道(包含 brand.json + stories/ 的文件夹),或想用用户自己的照片/片段制作类似事实每日一推的ReelsE. 事实Reels套件

如果关键信息缺失(目标平台/宽高比、风格),最多问一两个问题。否则做出合理选择,并告知用户你的选择。


A. 编辑素材

  1. 分析: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. 脸)。
  2. 草稿:vedit autocut raw.edit --punchin 1.12(对头)或添加 --aspect 9:16。这会写入 raw.edit/edl.json,其中已移除静音、硬语气词和NG片段。
  3. 像真正的剪辑师一样精修。使用转录编辑 edl.json:
    • 剪掉启发式算法未捕捉到的闲聊、重复观点、跑题内容和错误起头。保留最佳版本。仅当软语气词确实是废话时才移除它们。
    • 使钩子有力:如果最佳台词出现较晚,考虑将一个简短的预告片段移到开头。
    • 使用 "words": [first, last] 范围(精确、自动填充)。仅对非语音部分使用 "in"/"out" 秒数。
    • 添加润色:跳切上的推近、overlays(标题、B-roll、图片、音效)、audio.music、color。参见 references/edl.md 了解所有字段。
  4. 预览:vedit render raw.edit/edl.json --preview,然后 vedit frames <preview.mp4> --every 3 并阅读预览图片以检查构图、字幕放置和叠加层。修复并重新渲染(缓存的片段会被重用)。
  5. 最终:vedit render raw.edit/edl.json(如果用户在多个平台发布,添加 --formats 9:16,1:1)。
  6. 发布套件(创作者喜欢这个)。编写 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 个词"
  7. 告知用户 .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. 多机位播客 / 采访

  1. vedit multicam sync cam1.mp4 cam2.mp4 cam3.mp4 会给出每个摄像机的偏移量。将其放入 sources:"cam2": {"path": "cam2.mp4", "offset": 1.234}。如果置信度低,使用拍掌声处的帧画面进行验证。
  2. 如果每人有自己的麦克风:vedit multicam speakers micA.wav micB.wav --names host guest --offsets 0 0.8 会生成 speakers.txt,即谁在说话的时间线。
  3. 分析 main(最佳音频)。同步源的片段时间和单词时间码基于 main 的时间基准,音频自动来自 main。切换到说话者的摄像机,在交叉对话或反应镜头时使用广角镜头,避免短于 1.5 秒的镜头。

D. 故事 / 短剧模式(照片 + AI 语音)

  1. 根据用户的想法编写脚本:简短有力的台词(每行 ≤ 15 个词),前 3 秒内设置钩子,明确的结尾或笑点。每行使用一个说话者。对于短剧,给每个角色一个独特的语音和字幕颜色。
  2. 运行 vedit story grid story.json 并阅读每张 grid_sceneN.jpg 以获取每个角色面部的 focus 点。在网格上,x 使用黄色标签,y 使用蓝色标签。
  3. 编写 story.json(完整 schema 见 references/story.md)。在角色说话时使用近景 shot + focus,在旁白时使用广角或 Ken Burns motion。在场景之间添加 sfx、title、transition: fade 和 music。
  4. vedit story voices story.json 合成对白并打印时间表。检查节奏(短视频通常 ≤ 60 秒)。
  5. 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。

  1. 查看用户的原始文件(对于片段使用 vedit frames clip.mp4),挑选场景类型:image + 带旁白的 card,video + lines(B-roll,带旁白,静音),或 video + keep_audio: true 且无 lines(用户直接说话:真实语音,自动字幕)。从帧画面/转录中选择 in/out。
  2. 编写 story.json:钩子 → 事实 → "你知道吗?" → 事实 → ... → 评论/分享/关注,约 185 个词 ≈ 60 秒,一段流畅的旁白。对于语音可能读错的数字、年份和名称,使用 say。卡片文本:*stars* = 重音。
  3. vedit reels build STORY_DIR --only cards 并阅读卡片和 thumbnail.jpg。修正溢出的文本。
  4. 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。

相关技能