跳到主要内容

AI 视频制作工作流

用 AI 制作视频,核心不是"让 AI 生成整个视频",而是把重复性工作交给 AI,把创意判断留给人。一套完整的 AI 视频制作流水线分为六个阶段,每个阶段职责清晰,工具不重叠。

六阶段流水线

Script → Storyboard → Prompt Pack → TTS → Subtitles → Assembly Draft
脚本 → 分镜 → 提示词包 → 配音 → 字幕 → 组装草稿

1. Script(脚本)

脚本是整个流水线的源头。视频脚本不是文章,核心特征是口语化、短句、每段可视化

脚本包含多个部分,但只有原始讲解稿会进入 TTS,其余部分是给后续阶段用的:

部分说明流向
开场钩子1-2 句,抛出问题或反直觉结论→ TTS(口播)
核心结论只写 1 句,定调整个视频→ TTS(口播)
讲解提纲最多 3 个支撑点,结构骨架内部参考,不口播
原始讲解稿按段落,每段 1-3 句,口语化短句→ TTS(口播)
画面提示每段标注画面类型(录屏/动画/生成等)→ Storyboard

video-source-writer skill 生成脚本。时长参考:

  • 短视频:45-75 秒,约 150-200 字口播稿
  • 标准:90-180 秒,约 300-500 字
  • 深度:3-7 分钟,约 800-1500 字
提示

脚本写完后先大声读一遍。读起来绕口的地方,AI 配音也会出问题。

2. Storyboard(分镜)

将脚本每一段拆解为具体的画面描述,明确画面类型:

画面类型适用场景工具
录屏演示工具操作、代码演示Screen Studio、OBS
程序化动画架构图、流程图、数据可视化Remotion、Manim
AI 生成画面概念插图、场景 B-rollfal.ai、Sora、Kling
文字强调关键词、数字、引用Remotion、CapCut
UI 截图产品展示、界面说明截图 + 标注

分镜的作用是提前决策,避免后期边剪边想画面,降低返工成本。

3. Prompt Pack(提示词包)

基于分镜,为每个需要 AI 生成的画面写提示词,统一打包。

生图提示词(fal.ai Nano Banana Pro)示例:

professional tech explainer visual, dark background,
glowing network nodes connected by lines,
minimalist flat design, 16:9 aspect ratio

生视频提示词(Kling / Seedance)示例:

slow camera pan across a terminal screen showing code being written,
green text on dark background, shallow depth of field, cinematic
警告

提示词包要在 TTS 录音前准备好,因为画面节奏需要与语音时长对齐。先有音频时长,才能决定视频片段需要多长。

用 fal.ai 批量生成:

# 通过 fal.ai MCP 生成单张图
generate(
model_name: "fal-ai/nano-banana-pro",
input: {
"prompt": "你的提示词",
"image_size": "landscape_16_9"
}
)

# 生成视频片段(Seedance)
generate(
model_name: "fal-ai/seedance-1-0-pro",
input: {
"prompt": "你的提示词",
"duration": "5s",
"aspect_ratio": "16:9"
}
)

运行前用 estimate_cost 预估费用,避免意外消耗。

4. TTS(文字转语音)

将口播稿转为语音轨道。两个主流选项:

ElevenLabs(音质更自然,支持中文):

import os, 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 CSM-1B(对话感强,延迟低):

generate(
model_name: "fal-ai/csm-1b",
input: {
"text": "你的口播稿文字",
"speaker_id": 0
}
)

拿到音频后,用 FFmpeg 检查时长,反推每段画面需要的秒数:

ffprobe -v quiet -show_entries format=duration -of csv=p=0 voiceover.mp3

5. Subtitles(字幕)

基于语音音频自动生成时间轴对齐的字幕。推荐用 Whisper 本地转写,直接输出 SRT:

# 安装
pip install openai-whisper

# 生成字幕(中文视频用 zh 语言)
whisper voiceover.mp3 --language zh --output_format srt --output_dir ./subtitles

字幕文件处理建议:

  • SRT:通用格式,Descript / CapCut / Remotion 均支持导入
  • 每行字数:中文不超过 20 字,英文不超过 42 字符
  • 时间轴校对:AI 生成后快速过一遍,修正专有名词的错别字

在 Remotion 中渲染烧录字幕:

import { useCurrentFrame, useVideoConfig } from "remotion";

// 解析 SRT 后映射到帧号,在对应帧渲染字幕文字
const subtitle = getSubtitleAtFrame(subtitles, frame, fps);

return (
<AbsoluteFill>
{subtitle && (
<div
style={{
position: "absolute",
bottom: 80,
width: "100%",
textAlign: "center",
fontSize: 36,
color: "white",
textShadow: "1px 1px 4px rgba(0,0,0,0.8)",
}}
>
{subtitle.text}
</div>
)}
</AbsoluteFill>
);

6. Assembly Draft(组装草稿)

将素材、语音、字幕按时间轴组装为可预览的草稿。两条路径:

路径 A:Remotion(代码驱动,适合程序化内容)

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

export const VideoDraft: React.FC = () => (
<AbsoluteFill>
{/* 语音轨道贯穿全程 */}
<Audio src="/voiceover.mp3" />

{/* 第一段画面:0-5 秒 */}
<Sequence from={0} durationInFrames={150}>
<Video src="/segments/intro.mp4" />
</Sequence>

{/* 第二段画面:5-12 秒 */}
<Sequence from={150} durationInFrames={210}>
<Video src="/segments/demo.mp4" />
</Sequence>
</AbsoluteFill>
);

渲染输出:

npx remotion render src/index.ts VideoDraft output.mp4 \
--codec h264 --crf 18

路径 B:CapCut / Descript(界面操作,适合快速出稿)

  1. 导入所有素材片段和语音文件
  2. 把语音拖到时间轴,以语音节奏为基准排列画面
  3. 导入 SRT 字幕文件,自动对齐
  4. 调整节奏、色调,导出
提示

草稿阶段不追求完美,目标是能播放、能看清时序是否合理。节奏调整和最终润色在这一步之后做。

工具选型参考

工具擅长不擅长
video-source-writer skill生成口播脚本分镜、后期
fal.ai(Nano Banana / Kling)批量生成图片/视频素材精细控制画面构图
ElevenLabs自然中英文语音免费额度有限
fal.ai CSM-1B低成本 TTS中文效果弱于 ElevenLabs
Whisper高精度字幕转写需要本地运行
Remotion程序化动画、可复用模板学习曲线,非开发者不友好
CapCut / Descript快速剪辑、手动调整节奏无法自动化
FFmpeg批量裁剪、格式转换、音频处理无可视化界面

各平台导出规格

平台分辨率帧率时长建议
YouTube1920×108030fps不限,>8 分钟可插播广告
TikTok / 抖音1080×1920(竖屏)30fps15-60 秒效果最好
Instagram Reels1080×192030fps15-90 秒
B 站1920×108030fps不限
X / Twitter1280×72030fps≤ 2 分 20 秒

竖屏裁剪(FFmpeg):

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

相关资源