Communitygithub.com

OxMediaEcomm/video-editing

AI辅助的视频编辑工作流,涵盖剪辑、结构化和增强真实视频素材。覆盖从原始采集到FFmpeg、Remotion、ElevenLabs、fal.ai,再到Descript或CapCut最终润色的完整流程。当用户想要编辑视频、剪辑素材、制作Vlog或构建视频内容时使用。

video-editing 是什么?

该技能定义了一个完整的AI辅助视频编辑工作流,其核心理念是“编辑,而非生成”——专注于快速处理真实视频素材,而非通过提示词生成全新内容。工作流分为六个层次:1) 原始素材采集(Screen Studio或摄像机);2) 通过Claude/Codex进行智能组织与规划,包括转录、标签、结构设计和生成剪辑决策列表;3) 使用FFmpeg进行确定性的精确剪辑(分割、拼接、预处理);4) 利用Remotion进行可编程合成(叠加、动效、数据可视化);5) 通过ElevenLabs和fal.ai按需生成语音、音乐和视觉素材;6) 在Descript或CapCut中进行最终人工润色与调优。该技能支持多种社交媒体平台(YouTube、TikTok、Instagram等)的视频尺寸自适应,并包含场景检测、静音自动裁剪和高亮片段提取等高级功能。适用于想要快速从长素材中提取精华内容、创建Vlog、教程或演示视频的开发者与内容创作者。

兼容平台✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/OxMediaEcomm/c-420/tree/HEAD/skills/video-editing

在你喜欢的 AI 中提问

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

预览

来自技能 README

文档

视频编辑

AI辅助的真实素材编辑。不是通过提示词生成。而是快速编辑现有视频。

何时激活

  • 用户想要编辑、剪辑或结构化视频素材
  • 将长录音转为短视频内容
  • 从原始素材构建Vlog、教程或演示视频
  • 为现有视频添加覆盖层、字幕、音乐或旁白
  • 为不同平台(YouTube、TikTok、Instagram)重新调整视频
  • 用户提到“编辑视频”、“剪辑素材”、“制作Vlog”或“视频工作流”

核心理念

AI视频编辑的价值在于:不要让它创建整个视频,而是用它来压缩、组织和增强真实素材。价值不在于生成,而在于压缩。

工作流

Screen Studio / 原始素材
  → Claude / Codex
  → FFmpeg
  → Remotion
  → ElevenLabs / fal.ai
  → Descript 或 CapCut

每个层次都有特定工作。不要跳过任何层次,也不要试图让一个工具完成所有工作。

第一层:采集(Screen Studio / 原始素材)

收集源材料:

  • Screen Studio:适用于应用演示、编码会话、浏览器工作流的精美屏幕录制
  • 原始相机素材:Vlog素材、采访、活动录制
  • 通过VideoDB的桌面录制:带有实时上下文的会话录制(参见videodb技能)

输出:准备组织的原始文件。

第二层:组织(Claude / Codex)

使用Claude Code或Codex:

  • 转录并标记:生成转录稿,识别主题和话题
  • 规划结构:决定保留什么、剪掉什么、顺序如何
  • 识别无效部分:找出暂停、离题、重复拍摄
  • 生成剪辑决策列表:剪切的时间戳、保留的片段
  • 搭建FFmpeg和Remotion代码:生成命令和合成方案
示例提示词:
“这是一份4小时录音的转录稿。请为24分钟的Vlog找出最强的8个片段。
为每个片段提供FFmpeg剪切命令。”

这一层次关乎结构,而非最终的创意品味。

第三层:确定性剪辑(FFmpeg)

FFmpeg处理枯燥但关键的工作:分割、修剪、拼接和预处理。

按时间戳提取片段

ffmpeg -i raw.mp4 -ss 00:12:30 -to 00:15:45 -c copy segment_01.mp4

根据剪辑决策列表批量剪切

#!/bin/bash
# cuts.txt: start,end,label
while IFS=, read -r start end label; do
  ffmpeg -i raw.mp4 -ss "$start" -to "$end" -c copy "segments/${label}.mp4"
done < cuts.txt

拼接片段

# 创建文件列表
for f in segments/*.mp4; do echo "file '$f'"; done > concat.txt
ffmpeg -f concat -safe 0 -i concat.txt -c copy assembled.mp4

创建代理文件以加快编辑速度

ffmpeg -i raw.mp4 -vf "scale=960:-2" -c:v libx264 -preset ultrafast -crf 28 proxy.mp4

提取音频以进行转录

ffmpeg -i raw.mp4 -vn -acodec pcm_s16le -ar 16000 audio.wav

标准化音频电平

ffmpeg -i segment.mp4 -af loudnorm=I=-16:TP=-1.5:LRA=11 -c:v copy normalized.mp4

第四层:可编程合成(Remotion)

Remotion将编辑问题转化为可组合的代码。用于传统编辑器难以处理的任务:

何时使用Remotion

  • 覆盖层:文本、图片、品牌标识、下部三分之一
  • 数据可视化:图表、统计、动态数字
  • 运动图形:转场、解释性动画
  • 可组合场景:跨视频的可复用模板
  • 产品演示:带注释的屏幕截图、UI高亮

基本的Remotion合成

import { AbsoluteFill, Sequence, Video, useCurrentFrame } from "remotion";

export const VlogComposition: React.FC = () => {
  const frame = useCurrentFrame();

  return (
    <AbsoluteFill>
      {/* 主素材 */}
      <Sequence from={0} durationInFrames={300}>
        <Video src="/segments/intro.mp4" />
      </Sequence>

      {/* 标题覆盖层 */}
      <Sequence from={30} durationInFrames={90}>
        <AbsoluteFill style={{
          justifyContent: "center",
          alignItems: "center",
        }}>
          <h1 style={{
            fontSize: 72,
            color: "white",
            textShadow: "2px 2px 8px rgba(0,0,0,0.8)",
          }}>
            AI编辑栈
          </h1>
        </AbsoluteFill>
      </Sequence>

      {/* 下一个片段 */}
      <Sequence from={300} durationInFrames={450}>
        <Video src="/segments/demo.mp4" />
      </Sequence>
    </AbsoluteFill>
  );
};

渲染输出

npx remotion render src/index.ts VlogComposition output.mp4

有关详细模式及API参考,请参阅Remotion文档。

第五层:生成资产(ElevenLabs / fal.ai)

只生成你需要的。不要生成整个视频。

使用ElevenLabs生成旁白

import os
import requests

resp = requests.post(
    f"https://api.elevenlabs.io/v1/text-to-speech/{voice_id}",
    headers={
        "xi-api-key": os.environ["ELEVENLABS_API_KEY"],
        "Content-Type": "application/json"
    },
    json={
        "text": "请在此处放置旁白文本",
        "model_id": "eleven_turbo_v2_5",
        "voice_settings": {"stability": 0.5, "similarity_boost": 0.75}
    }
)
with open("voiceover.mp3", "wb") as f:
    f.write(resp.content)

使用fal.ai生成音乐和音效

使用fal-ai-media技能:

  • 背景音乐生成
  • 音效(ThinkSound模型用于视频转音频)
  • 转场音效

使用fal.ai生成视觉素材

用于插入镜头、缩略图或缺失的B-roll:

generate(app_id: "fal-ai/nano-banana-pro", input_data: {
  "prompt": "科技Vlog的专业缩略图,深色背景,屏幕上显示代码",
  "image_size": "landscape_16_9"
})

使用VideoDB生成音频

如果配置了VideoDB:

voiceover = coll.generate_voice(text="旁白文本", voice="alloy")
music = coll.generate_music(prompt="编程Vlog的lo-fi背景音乐", duration=120)
sfx = coll.generate_sound_effect(prompt="微妙的嗖声转场音效")

第六层:最终润色(Descript / CapCut)

最后一层由人完成。使用传统编辑器进行:

  • 节奏:调整感觉过快或过慢的剪辑
  • 字幕:自动生成,然后手动清理
  • 色彩分级:基本校正和氛围渲染
  • 最终混音:平衡语音、音乐和音效的音量
  • 导出:平台特定的格式和质量设置

这是品味所在。AI清除了重复性工作,最终决定由你做出。

社媒适配

不同平台需要不同的宽高比:

平台宽高比分辨率
YouTube16:91920x1080
TikTok / Reels9:161080x1920
Instagram 信息流1:11080x1080
X / Twitter16:9 或 1:11280x720 或 720x720

使用FFmpeg适配

# 16:9 转 9:16(中心裁剪)
ffmpeg -i input.mp4 -vf "crop=ih*9/16:ih,scale=1080:1920" vertical.mp4

# 16:9 转 1:1(中心裁剪)
ffmpeg -i input.mp4 -vf "crop=ih:ih,scale=1080:1080" square.mp4

使用VideoDB适配

from videodb import ReframeMode

# 智能适配(AI引导的主体跟踪)
reframed = video.reframe(start=0, end=60, target="vertical", mode=ReframeMode.smart)

场景检测与自动剪辑

FFmpeg场景检测

# 检测场景变化(阈值0.3 = 中等敏感度)
ffmpeg -i input.mp4 -vf "select='gt(scene,0.3)',showinfo" -vsync vfr -f null - 2>&1 | grep showinfo

用于自动剪辑的静音检测

# 寻找静音片段(用于剪切空白时段)
ffmpeg -i input.mp4 -af silencedetect=noise=-30dB:d=2 -f null - 2>&1 | grep silence

高亮片段提取

使用Claude分析转录稿和场景时间戳:

“根据这份带有时间戳的转录稿和场景变化点,
找出5个最适合社媒分享的30秒精彩片段。”

各工具最佳用途

工具优势劣势
Claude / Codex组织、规划、代码生成非创意品味层
FFmpeg确定性剪辑、批量处理、格式转换无可视化编辑界面
Remotion可编程覆盖层、可组合场景、可复用模板非开发者的学习曲线
Screen Studio即时生成精美的屏幕录制仅限屏幕捕获
ElevenLabs语音、旁白、音乐、音效非工作流中心
Descript / CapCut最终节奏、字幕、润色手动,不可自动化

关键原则

  1. 编辑,而非生成。 此工作流用于剪辑真实素材,不是通过提示词创建内容。
  2. 先结构,后风格。 在第二层搞定故事,之后才处理任何视觉元素。
  3. FFmpeg是支柱。 枯燥但关键,是长素材变得可控之处。
  4. Remotion用于可重复性。 如果要做超过一次,就做成Remotion组件。
  5. 有选择地生成。 仅在需要不存在的素材时使用AI生成,而不是处处用。
  6. 品味是最后一层。 AI清除重复工作,最终创意决定由你做出。

相关技能

  • fal-ai-media — AI图像、视频和音频生成
  • videodb — 服务端视频处理、索引和流式传输
  • content-engine — 平台原生内容分发

相关技能