| name | videocut:高清化 |
| description | 视频高清导出。2-pass编码 + 锐化,匹配或超越原片画质。 |
高清化
2-pass 编码 + 锐化,像剪映一样导出高清
设计理念
剪映的做法:剪辑时不管画质,导出时统一渲染成高清。
我们的管线:
- 剪口播
cut_video.sh 已经做了帧级精确切割 + 匹配码率重编码
- 高清化是可选的额外增强,用 2-pass + 更高码率 + 锐化,让画质超过原片
流程
0. 定位视频文件(自动查找或用户指定)
↓
1. 检测原片编码参数
↓
2. Pass 1: 分析画面复杂度
↓
3. Pass 2: 编码 + 锐化
↓
4. 输出 _hd.mp4
执行
bash skills/高清化/scripts/hd_export.sh input.mp4
bash skills/高清化/scripts/hd_export.sh input.mp4 output_hd.mp4
bash skills/高清化/scripts/hd_export.sh input.mp4 output_hd.mp4 1.5
参数说明
| 参数 | 默认值 | 说明 |
|---|
| 码率倍率 | 1.2x | 相对原片码率的倍数 |
| preset | slow | 编码速度 |
| 锐化 | 开启 | 轻微锐化补偿量化损失 |
| 编码 | 2-pass | 两遍编码,码率分配更均匀 |
原理
为什么 2-pass 比 1-pass 好?
- 1-pass:按固定规则分配码率,简单画面可能过度分配,复杂画面码率不足
- 2-pass:第一遍分析全片复杂度,第二遍按分析结果精准分配码率
- 同码率下,2-pass 画质更好
为什么加锐化?
- 任何重编码都会引入微小的模糊
- 轻微锐化(
unsharp=5:5:0.3)补偿这个损失
匹配原片参数
自动检测并匹配:
-profile:v → 原片的 profile(通常是 high)
-pix_fmt → 原片的像素格式(通常是 yuv420p)
-b:v → 原片码率 × 倍率