以这条命令为例子
ffmpeg -i src1.mp4 -c:v hevc_nvenc -preset p7 -tune hq -rc vbr -cq 32 -c:a copy -progress - dest1.mp4
# FFmpeg 命令解析
以下是对命令 `ffmpeg -i src1.mp4 -c:v hevc_nvenc -preset p7 -tune hq -rc vbr -cq 32 -c:a copy -progress - dest1.mp4` 的详细解释:
## 基本结构
ffmpeg [全局选项] [输入文件选项] -i 输入文件 [输出文件选项] 输出文件
注意:最好不要去改变源视频分辨率,有时候会越改文件体积越大,cq值就用32,效果损失不大
参数分解
输入/输出
-
-i src1.mp4
指定输入文件为src1.mp4
-
dest1.mp4
指定输出文件为dest1.mp4
视频编码
-
-c:v hevc_nvenc
使用 NVIDIA 的 HEVC 编码器(需要 NVIDIA GPU 支持) -
-preset p7
NVIDIA 编码预设:p7
表示最高质量预设(但编码速度最慢)
-
-tune hq
编码优化模式:hq
表示高质量模式(优先保证质量而非速度)
-
-rc vbr
码率控制模式:vbr
(Variable Bitrate) 可变比特率
-
-cq 32
恒定质量参数:- 值范围 0-51(越低质量越好)
32
是推荐的平衡值
音频处理
-c:a copy
直接复制音频流(不重新编码)
其他选项
-progress -
将进度信息输出到标准输出(STDOUT)
推荐的 CRF 参数:
-
H.264 编码:
- 如果你需要文件尽量小,但画质损失不要太大,可以尝试 CRF 23 到 CRF 28。
- CRF 23:这是一个常用的默认值,画质较好,文件大小适中。
- CRF 25:画质略有下降,但文件大小会明显减小。
- CRF 28:画质损失较大,但文件会更小。
- 如果你对画质要求较高,可以从 CRF 20 开始测试,逐步增加 CRF 值,直到找到一个你认为画质可以接受的值。
- 如果你需要文件尽量小,但画质损失不要太大,可以尝试 CRF 23 到 CRF 28。
-
H.265 编码:
- H.265 是 H.264 的升级版,压缩效率更高,因此可以用更高的 CRF 值来达到类似的效果。
- 推荐 CRF 28 到 CRF 32。
- CRF 28:画质较好,文件大小比 H.264 更小。
- CRF 30:画质略有下降,但文件大小会更小。
- CRF 32:画质损失较大,但文件会更小。