视频编辑
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清除了重复性工作,最终决定由你做出。
社媒适配
不同平台需要不同的宽高比:
| 平台 | 宽高比 | 分辨率 |
|---|---|---|
| YouTube | 16:9 | 1920x1080 |
| TikTok / Reels | 9:16 | 1080x1920 |
| Instagram 信息流 | 1:1 | 1080x1080 |
| X / Twitter | 16:9 或 1:1 | 1280x720 或 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 | 最终节奏、字幕、润色 | 手动,不可自动化 |
关键原则
- 编辑,而非生成。 此工作流用于剪辑真实素材,不是通过提示词创建内容。
- 先结构,后风格。 在第二层搞定故事,之后才处理任何视觉元素。
- FFmpeg是支柱。 枯燥但关键,是长素材变得可控之处。
- Remotion用于可重复性。 如果要做超过一次,就做成Remotion组件。
- 有选择地生成。 仅在需要不存在的素材时使用AI生成,而不是处处用。
- 品味是最后一层。 AI清除重复工作,最终创意决定由你做出。
相关技能
fal-ai-media— AI图像、视频和音频生成videodb— 服务端视频处理、索引和流式传输content-engine— 平台原生内容分发