通过 Everything Claude Code 的 video-editing 及相关 Skill,开发者能在 AI 编程助手中构建一套端到端的自动化视频生产工作流。该工作流以 FFmpeg 为骨干进行批量切段与预处理,利用 Remotion 的 29 条领域规则进行编程式合成与模板化叠加,并通过 ElevenLabs 与 fal.ai 补充生成配音、音乐及视觉素材,最终借助 VideoDB 完成视频摄取、智能索引与时间线编辑。这套全栈方案将传统数小时的手工剪辑压缩为可自动化、可编程、可复用的智能流程,显著提升内容生产效率。
AI 视频工作流全栈:FFmpeg 剪辑、Remotion 编程合成与多模态素材生成
处理长达数小时的录屏、访谈或活动录像,传统做法需要手动浏览、标记、切片、拼接,再逐一添加字幕、配音和转场,整个过程繁琐低效。Everything Claude Code 提供的 video-editing Skill 及其关联生态,将这一流程升级为一套由 AI 协调、工具链自动化的全栈工作流。本文将以操作指南的形式,拆解从原始素材到多平台成片的完整步骤。
1. 工作流全景与核心组件
这套全栈方案并非单一工具,而是由多个专业组件协作的系统,每个组件解决流程中的一个关键痛点:
- AI 结构规划与决策:负责理解视频内容,自动识别有效片段,生成剪辑决策表(Edit Decision List)。
- FFmpeg 批量处理层:负责执行裁剪、拼接、格式转换、音量标准化等高强度本地处理任务,是工作流的骨干。
- Remotion 编程合成层:负责以 React 代码定义视频的视觉层,实现字幕、品牌元素、动画、数据可视化的精准叠加与模板化复用。
- ElevenLabs / fal.ai 多模态生成层:负责补全缺失的音频(配音、音效)和视觉(B-roll、插图)素材。
- VideoDB 智能管理层:负责视频的云端摄取、内容索引、基于语义的搜索以及时间线编辑,适合处理大量素材或实时流。
2. 完整工作流分步指南
步骤一:素材采集与结构规划
输入:原始视频文件(如 raw_meeting.mp4)或视频转录文本。
输出:包含时间戳、主题和保留原因的剪辑决策表,以及后续步骤的指令。
-
准备素材:使用 Screen Studio 等工具录制,或直接导入现有视频文件。确保视频文件位于项目工作目录。
-
触发 AI 规划:在 Claude Code 或 Cursor 中,向 AI 助手下达明确指令。指令的清晰度直接影响后续自动化的质量。
示例 Prompt:
分析这段 1 小时的产品演示录屏(video: demo_raw.mp4),找出所有核心功能展示的片段,剔除准备和调试部分,生成一份剪辑决策表,目标输出 10 分钟的精华版。请为每个片段标注起止时间和主题。 -
获取剪辑决策表:AI 将输出一份结构化文本,通常是 CSV 或 Markdown 表格,包含
start(开始时间)、end(结束时间)、label(片段标识)、reason(保留原因)等字段。这是后续所有自动化操作的“蓝图”。
步骤二:FFmpeg 批量切段与预处理
输入:原始视频文件和剪辑决策表(例如 cuts.csv)。
输出:一组按主题命名的视频片段文件,以及可能的代理文件。
此步骤完全自动化,AI 根据决策表生成并执行 FFmpeg 脚本。
-
生成并执行切段脚本:AI 会生成类似以下 Bash 脚本并执行:
#!/bin/bash # 确保 segments 目录存在 mkdir -p segments # 读取决策表并逐个切割 while IFS=, read -r start end label; do # -c copy 表示直接复制流,不重新编码,速度极快 ffmpeg -i "raw_meeting.mp4" -ss "$start" -to "$end" -c copy "segments/${label}.mp4" done < cuts.csv验证方法:检查
segments/目录下是否生成了对应数量的.mp4文件,每个文件时长应与决策表中的(end - start)基本一致。 -
可选预处理:对于超大文件,可以生成低码率代理文件以加速后续编辑:
# 为每个片段生成 720p 代理文件 for f in segments/*.mp4; do ffmpeg -i "$f" -vf scale=1280:720 -c:v libx264 -crf 23 "proxies/$(basename "$f")" done
步骤三:Remotion 编程式合成
输入:切好的视频片段、品牌资产(Logo、字体)。 输出:一个可渲染的 Remotion 组件,定义了视频的视觉结构。
Remotion 允许你用 TypeScript/React 代码定义视频。video-editing Skill 会辅助 scaffold 出基础组件。
- 初始化 Remotion 项目(如果尚未有):
npx create-video@latest - 生成或编写主合成组件:AI 会根据你的需求生成代码。一个典型组件会按时间轴排列视频片段,并在特定时刻叠加字幕或动画。
// src/Composition.tsx import { AbsoluteFill, Sequence, Video, useCurrentFrame } from "remotion"; import { Subtitles } from "./Subtitles"; // 假设的字幕组件 export const MyVideo: React.FC = () => { const frame = useCurrentFrame(); return ( <AbsoluteFill style={{ backgroundColor: "black" }}> {/* 片段1:开场,持续 150 帧(约 5 秒 @ 30fps) */} <Sequence from={0} durationInFrames={150}> <Video src="/segments/intro.mp4" /> </Sequence> {/* 叠加标题,从第 30 帧开始,持续 90 帧 */} <Sequence from={30} durationInFrames={90}> <AbsoluteFill style={{ justifyContent: "center", alignItems: "center", }} > <h1 style={{ color: "white", fontSize: 80 }}> 智能视频工作流 </h1> </AbsoluteFill> </Sequence> {/* 片段2:功能演示,从第 150 帧开始 */} <Sequence from={150}> <Video src="/segments/feature_demo.mp4" /> </Sequence> {/* 字幕层,根据数据自动生成 */} <Subtitles startFrame={150} /> </AbsoluteFill> ); }; - 本地预览:使用
npm start启动 Remotion Studio,在浏览器中实时预览效果。这是调整节奏、动画和字幕同步的关键环节。
步骤四:多模态素材生成(ElevenLabs / fal.ai)
输入:文本描述、视频片段。 输出:配音音频文件(.mp3)、背景音乐、音效或补充性视觉素材(B-roll)。
当视频缺少旁白或需要增强听觉体验时,调用 AI 生成服务。
-
生成配音:使用
fal-ai-mediaSkill 的 ElevenLabs 接口。# generate_voiceover.py import os import requests ELEVENLABS_API_KEY = os.getenv("ELEVENLABS_API_KEY") VOICE_ID = "21m00Tcm4TlvDq8ikWAM" # 示例声音ID text = "接下来,让我们看看这个功能是如何工作的。" url = f"https://api.elevenlabs.io/v1/text-to-speech/{VOICE_ID}" headers = { "xi-api-key": ELEVENLABS_API_KEY, "Content-Type": "application/json" } data = { "text": text, "model_id": "eleven_turbo_v2_5" } response = requests.post(url, json=data, headers=headers) with open("voiceover.mp3", "wb") as f: f.write(response.content) print("配音文件已生成:voiceover.mp3")验证:播放
voiceover.mp3,确认语音清晰、内容正确。 -
生成补充视觉素材:使用
fal-ai-mediaSkill 的文本生图能力。// 调用 fal.ai 的 Nano Banana Pro 模型生成产品场景图 generate( app_id: "fal-ai/nano-banana-pro", input_data: { prompt: "abstract technology background with flowing blue particles, 4k", image_size: "landscape_16_9" } )输出示例:返回一个图片 URL,可下载后放入 Remotion 项目的
public文件夹。
步骤五:最终渲染与多平台适配
输入:完成的 Remotion 组件、生成的配音/音乐文件。 输出:不同分辨率和画幅的最终视频文件。
- 渲染主视频:
npx remotion render src/index.ts MyVideo output/master.mp4 - 生成多平台版本:AI 可以生成 FFmpeg 命令,将主视频裁剪或缩放至不同平台要求。
# 从 16:9 主视频裁剪出 9:16 竖屏版(居中裁剪) ffmpeg -i output/master.mp4 -vf "crop=ih*9/16:ih,scale=1080:1920" output/tiktok_vertical.mp4 # 生成 1:1 方形版 ffmpeg -i output/master.mp4 -vf "crop=min(iw\,ih):min(iw\,ih)" output/instagram_square.mp4
3. 进阶:与 VideoDB 集成进行智能管理
对于更复杂的场景,如需要从长达数天的监控录像中提取特定事件,或管理一个庞大的视频素材库,videodb Skill 提供了更强大的能力。
- 摄取与索引:将视频上传至 VideoDB 云端,自动建立语音和视觉索引。
import videodb conn = videodb.connect() coll = conn.get_collection() video = coll.upload(file_path="long_conference.mp4") video.index_spoken_words() # 索引所有语音内容 video.index_scenes() # 索引场景 - 内容搜索与剪辑:通过自然语言搜索特定内容,并直接生成剪辑流。
# 搜索所有提到“预算”的片段 results = video.search("预算讨论") shots = results.get_shots() # 将搜索结果编译成一个可播放的视频流 stream_url = results.compile() - 时间线编辑:在云端 API 层面进行更复杂的编辑,如添加字幕、叠加图片,无需本地处理文件。
from videodb.timeline import Timeline from videodb.asset import TextAsset, TextStyle timeline = Timeline(conn) timeline.add_inline(video_asset) # 添加主视频 timeline.add_overlay(0, TextAsset(text="重要结论", duration=5, style=TextStyle(fontsize=48))) final_stream = timeline.generate_stream()
4. 注意事项与排错
- FFmpeg 命令失败:检查输入文件路径是否正确,时间戳格式是否为
HH:MM:SS.ss或秒数。确保segments/目录有写入权限。 - Remotion 渲染卡顿或崩溃:检查是否有组件在时间轴外的帧访问了未定义的资源(如视频、图片)。使用
useCurrentFrame()进行条件渲染或错误边界处理。 - AI 生成内容不一致:避免在整个视频中过度使用 AI 生成内容。最佳实践是“人工规划结构,AI 执行细节”,并在关键视觉风格(如调色、品牌元素)上保持人工最终把关。
- API Key 错误:所有外部服务(ElevenLabs, fal.ai, VideoDB)都需要有效的 API Key。请确保在环境变量或
.env文件中正确配置。
FAQ
Q: 整个工作流必须按顺序完成吗?能否跳过某些步骤? A: 可以根据需求灵活组合。如果已有配好音的素材,可以跳过步骤四;如果只需简单拼接,可以不用 Remotion 而只用 FFmpeg。核心是理解每个工具的定位,按需调用。
Q: 为什么推荐用 Remotion 而不是直接用剪辑软件? A: Remotion 的优势在于“编程化”和“可复用”。一旦定义好模板(如带有标准字幕栏、片头片尾的 vlog 模板),就可以通过替换数据批量生成一系列风格统一的视频,非常适合内容创作和产品演示的规模化生产。
Q: 这套方案对个人电脑性能要求高吗? A: 主要性能消耗在 FFmpeg 的视频编码和 Remotion 的渲染上。对于 1080p 视频,一台主流的现代笔记本电脑完全可以胜任。涉及 4K 或复杂动画时,渲染时间会显著增加,可考虑使用 Remotion 的云渲染服务。AI 生成和云端处理(VideoDB)部分不消耗本地算力。