通过 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)或视频转录文本。 输出:包含时间戳、主题和保留原因的剪辑决策表,以及后续步骤的指令。

  1. 准备素材:使用 Screen Studio 等工具录制,或直接导入现有视频文件。确保视频文件位于项目工作目录。

  2. 触发 AI 规划:在 Claude Code 或 Cursor 中,向 AI 助手下达明确指令。指令的清晰度直接影响后续自动化的质量。

    示例 Prompt

    分析这段 1 小时的产品演示录屏(video: demo_raw.mp4),找出所有核心功能展示的片段,剔除准备和调试部分,生成一份剪辑决策表,目标输出 10 分钟的精华版。请为每个片段标注起止时间和主题。
  3. 获取剪辑决策表:AI 将输出一份结构化文本,通常是 CSV 或 Markdown 表格,包含 start(开始时间)、end(结束时间)、label(片段标识)、reason(保留原因)等字段。这是后续所有自动化操作的“蓝图”。

步骤二:FFmpeg 批量切段与预处理

输入:原始视频文件和剪辑决策表(例如 cuts.csv)。 输出:一组按主题命名的视频片段文件,以及可能的代理文件。

此步骤完全自动化,AI 根据决策表生成并执行 FFmpeg 脚本。

  1. 生成并执行切段脚本: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) 基本一致。

  2. 可选预处理:对于超大文件,可以生成低码率代理文件以加速后续编辑:

    # 为每个片段生成 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 出基础组件。

  1. 初始化 Remotion 项目(如果尚未有):
    npx create-video@latest
  2. 生成或编写主合成组件: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>
      );
    };
  3. 本地预览:使用 npm start 启动 Remotion Studio,在浏览器中实时预览效果。这是调整节奏、动画和字幕同步的关键环节。

步骤四:多模态素材生成(ElevenLabs / fal.ai

输入:文本描述、视频片段。 输出:配音音频文件(.mp3)、背景音乐、音效或补充性视觉素材(B-roll)。

当视频缺少旁白或需要增强听觉体验时,调用 AI 生成服务。

  1. 生成配音:使用 fal-ai-media Skill 的 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,确认语音清晰、内容正确。

  2. 生成补充视觉素材:使用 fal-ai-media Skill 的文本生图能力。

    // 调用 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 组件、生成的配音/音乐文件。 输出:不同分辨率和画幅的最终视频文件。

  1. 渲染主视频
    npx remotion render src/index.ts MyVideo output/master.mp4
  2. 生成多平台版本: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)部分不消耗本地算力。