🎬 AI 质感纪录片短视频生成 Skill
一、Skill 概述
适用场景
- 古诗文 / 经典文学短视频(如《诫子书》《岳阳楼记》等)
- 历史人文 / 自然纪录片风格短片
- AI 生成素材 + 后期质感增强
- 时长:1-3 分钟(18-25 镜)
核心能力
| 能力 | 实现方式 |
|---|---|
| 视频素材生成 | Minimax H3(或其他 AI 视频工具) |
| 旁白合成 | Edge TTS(微软神经语音) |
| 视频拼接 | FFmpeg(转场 + 混音 + 字幕 + 特效) |
| 字幕生成 | Pillow 渲染 + FFmpeg overlay |
| 片尾特效 | 逐帧 PNG 合成 + 动画拼接 |
二、分镜思路(通用模板)
2.1 分镜结构设计(18-22 镜,90-120 秒)
| 段落 | 镜数 | 时长 | 内容类型 | 情绪节奏 |
|---|---|---|---|---|
| 开篇(1-3 镜) | 3-4 | 12-18s | 环境建立、全景空镜 | 引入、静谧 |
| 展开(4-12 镜) | 8-10 | 40-50s | 叙事主体、中近景交替 | 递进、沉稳 |
| 高潮(13-16 镜) | 4-5 | 20-25s | 特写、情绪烘托 | 升华、有力 |
| 收尾(17-18 镜) | 2-3 | 10-15s | 定格、全文展示 | 余韵、隽永 |
2.2 分镜内容设计原则
| 原则 | 说明 |
|---|---|
| 景别多样 | 全景 → 中景 → 近景 → 特写,避免单调 |
| 光影递进 | 从明亮到昏暗(或反之),暗示情绪变化 |
| 元素呼应 | 烛火、水滴、落叶、翻书等元素贯穿全片 |
| 静动结合 | 静态画面(书卷、器物)+ 动态画面(光影、飘落) |
| 旁白锚点 | 关键旁白句配关键镜头,音画同步 |
2.3 示例分镜(以《诫子书》为例)
| 镜号 | 景别 | 画面内容 | 旁白对应 | 转场 |
|---|---|---|---|---|
| 01 | 全景 | 夜月竹影 | "夫君子之行" | --- |
| 02 | 中景 | 烛下书卷 | "静以修身" | 叠化 |
| 03 | 近景 | 烛火摇曳 | "俭以养德" | 硬切 |
| 04 | 特写 | 竹叶凝露 | "非淡泊无以明志" | 叠化 |
| ... | ... | ... | ... | ... |
| 18 | 特写 | 全文竖排竹简 | "将复何及!" | 叠化 |
三、旁白音色选择指南
3.1 音色适配建议(按内容风格)
| 内容风格 | 推荐音色 | 说明 |
|---|---|---|
| 历史/古典/文言文 | zh-CN-YunjianNeural(云健) | 沉稳男声,纪录片感 |
| 自然/风景/治愈 | zh-CN-XiaoxiaoNeural(晓晓) | 温婉女声,柔和亲切 |
| 新闻/科普/资讯 | zh-CN-YunyangNeural(云扬) | 播报男声,清晰有力 |
| 青年/活力/现代 | zh-CN-YunxiNeural(云希) | 阳光男声,轻快自然 |
| 情感/倾诉/散文 | zh-CN-XiaoyiNeural(晓伊) | 温柔女声,细腻有温度 |
| 商务/专业/产品 | zh-CN-YongNeural(勇) | 沉稳男声,专业可靠 |
3.2 语速与情绪控制
| 情绪 | 语速调整 | 说明 |
|---|---|---|
| 沉稳/庄重 | -10% ~ -15% |
适合古典、历史题材 |
| 正常/自然 | 0% |
通用 |
| 轻快/活泼 | +5% ~ +10% |
适合现代、青年内容 |
| 舒缓/治愈 | -5% |
适合自然、散文 |
3.3 使用命令示例
bash
# 云健 - 沉稳男声(古典/纪录片)
edge-tts --text "你的旁白文本" --voice zh-CN-YunjianNeural --rate -10% --output audio.mp3
# 晓晓 - 温婉女声(自然/治愈)
edge-tts --text "你的旁白文本" --voice zh-CN-XiaoxiaoNeural --rate -5% --output audio.mp3
# 云扬 - 新闻播报(科普/资讯)
edge-tts --text "你的旁白文本" --voice zh-CN-YunyangNeural --rate 0% --output audio.mp3
四、技术流水线(核心 Skill)
4.1 整体流程图
┌─────────────────┐
│ 1. 素材生成 │ ← Minimax H3 / 其他 AI 视频工具
│ (18-22 个片段) │
└────────┬────────┘
▼
┌─────────────────┐
│ 2. 旁白合成 │ ← Edge TTS(音色 + 语速配置)
│ (按时间轴对齐) │
└────────┬────────┘
▼
┌─────────────────┐
│ 3. 视频拼接 │ ← FFmpeg xfade 叠化 + 硬切
│ (6-8 处转场) │
└────────┬────────┘
▼
┌─────────────────┐
│ 4. 音频混音 │ ← 原音效静音 + 旁白叠加
│ (人声突出) │
└────────┬────────┘
▼
┌─────────────────┐
│ 5. 字幕生成 │ ← Pillow 渲染 + FFmpeg overlay
│ (字体/颜色/位置)│
└────────┬────────┘
▼
┌─────────────────┐
│ 6. 片尾特效 │ ← 逐帧 PNG + 动画拼接
│ (竖排/滚动等) │
└────────┬────────┘
▼
┌─────────────────┐
│ 7. 最终输出 │ ← 完整质感版视频
│ (H.264 + AAC) │
└─────────────────┘
4.2 关键配置参数
视频参数
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 分辨率 | 1024×576 | 16:9,32 倍数约束 |
| 帧率 | 24fps | 电影感 |
| 编码 | H.264 | 兼容性高 |
| 码率 | 2-4 Mbps | 平衡画质与体积 |
转场参数
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 叠化时长 | 0.4-0.8s | 根据节奏调整 |
| 叠化数量 | 6-8 处 | 关键情节点 |
| 硬切 | 其余镜头 | 保持节奏紧凑 |
字幕参数
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 字体 | 楷体/宋体 | 古典题材推荐 |
| 颜色 | #E8C97A(淡金) | 典雅复古感 |
| 位置 | 左下角 | 不干扰画面主体 |
| 描边 | 黑色 2-3px | 提升可读性 |
片尾特效参数
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 背景 | 黑屏 | 突出文字 |
| 排版 | 竖排右起 | 仿古书 |
| 动画 | 逐列淡入 | 书写感 |
| 定格 | 3-5s | 留给观众回味 |
五、脚本模板(可复用)
5.1 目录结构
project/
├── inputs/
│ ├── clip_01.mp4 ~ clip_18.mp4 # 原始素材片段
│ └── script.txt # 旁白脚本(每行一句)
├── scripts/
│ ├── gen_tts.py # 批量生成旁白
│ ├── build_xfade.py # 转场拼接
│ ├── mix_narration.py # 音频混音
│ ├── gen_subtitles.py # 字幕生成
│ ├── burn_subtitles.py # 字幕烧录
│ └── make_final.py # 片尾特效 + 最终拼接
├── output/
│ ├── clips/ # 片段
│ ├── audio/ # 旁白音频
│ ├── temp/ # 中间产物
│ └── final/
│ └── 最终版.mp4
└── config.yaml # 配置文件
5.2 核心配置文件(config.yaml)
yaml
# 视频配置
video:
resolution: "1024x576"
fps: 24
codec: "h264"
bitrate: "3M"
# 旁白配置
tts:
voice: "zh-CN-YunjianNeural" # 音色
rate: "-10%" # 语速
output_dir: "output/audio/"
# 转场配置
xfade:
duration: 0.6 # 叠化时长(秒)
type: "dissolve" # 转场类型
positions: [1, 2, 11, 12, 13, 14] # 需要叠化的镜头位置
# 字幕配置
subtitle:
font: "STKaiti" # 字体
color: "#E8C97A" # 淡金色
position: "bottom-left"
outline: 2
size: 28
# 片尾配置
ending:
duration: 7 # 片尾总时长(秒)
full_text: "..." # 全文
highlight: "将复何及!" # 放大字
columns: 6 # 竖排列数
六、常见问题与解决方案
| 问题 | 原因 | 解决方案 |
|---|---|---|
| FFmpeg 不支持字幕滤镜 | 无 libass/freetype | 改用 Pillow + overlay |
| 视频时长与预期不符 | 容器封装有填充帧 | 用帧数验证实际时长 |
| 旁白与画面不同步 | 时间轴计算错误 | 核对旁白 start_time |
| 原音效太大盖过人声 | 混音音量比不当 | 降低原音效音量至 0 或 0.1 |
| 字迹不清晰 | 颜色对比度低 | 加深描边或改用白字 |
| 片尾动画卡顿 | 单帧生成过多 | 优化生成逻辑,减少帧数 |
七、扩展与定制
7.1 可替换模块
- 视频素材来源:Minimax H3 → Pika / Runway / Sora / 实拍素材
- 旁白引擎:Edge TTS → Azure TTS / ElevenLabs / 讯飞语音
- 字幕工具:Pillow → ImageMagick / 直接 FFmpeg drawtext
7.2 可添加特效
- 环境背景音乐(BGM)
- 动态水印 / Logo
- 镜头缓动(Ken Burns 效果)
- 画面调色(LUT)
- 片尾滚动字幕
八、快速开始命令
bash
# 1. 生成旁白
python scripts/gen_tts.py --script script.txt --voice zh-CN-YunjianNeural --rate -10%
# 2. 拼接转场
python scripts/build_xfade.py --input clips/ --xfade 0.6
# 3. 混音(静音原音效)
python scripts/mix_narration.py --video transcode.mp4 --audio audio/ --mute-original
# 4. 生成字幕
python scripts/burn_subtitles.py --video narration.mp4 --subtitle script.srt
# 5. 添加片尾
python scripts/make_final.py --video subtitle.mp4 --ending full_text.txt
# 全部自动化
python pipeline.py --config config.yaml
这套 Skill 模板可根据不同题材(诗词、自然、历史、科普)灵活调整分镜、音色、配色和转场节奏。如需针对某个具体项目生成脚本,只需提供:
- 旁白文本(或分镜表)
- 素材片段(或生成提示词)
- 风格偏好(沉稳/清新/庄重/活泼)
即可自动跑完整条流水线。