FFmpeg 视频压缩

FFmpeg 压缩视频的常用方法和参数说明。

本文讲怎么用 FFmpeg 压缩视频,以及每个参数的含义。

基础命令

ffmpeg -i input.mp4 -b:v 1M output.mp4

每段含义:

参数含义
ffmpeg程序本身
-i input.mp4-i 是输入,后面是源文件
-b:v 1M-b:v 是视频码率,1M = 每秒 1 Mbit
output.mp4输出文件名(永远放最后)

码率是什么? 视频每秒占用的数据量。码率越高,画质越好,文件越大;越低则相反。

方法 1:CRF(推荐)

CRF(Constant Rate Factor,恒定质量)是最简单的压缩方式,选一个质量等级即可:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4
参数含义
-c:v libx264-c:v 是视频编码器,libx264 是 H.264 编码器
-crf 23质量值(0-51),越低画质越好,文件越大

CRF 取值参考

CRF画质适用
18极佳(接近无损)重要素材归档
23良好(默认)日常使用
28一般网络分享、社交媒体
33较低预览、草稿

建议: 从 23 开始。文件太大改 28,画质不够改 20。

方法 2:指定文件大小

需要控制文件大小时用码率模式:

ffmpeg -i input.mp4 -c:v libx264 -b:v 2M output.mp4

常见码率:

  • 500K = 每秒 500 Kbit(小文件,画质一般)
  • 1M = 1 Mbit(中等)
  • 2M = 2 Mbit(画质好)
  • 5M = 5 Mbit(高画质)

编码速度:preset

-preset 控制编码速度:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset fast output.mp4
Preset速度文件大小
ultrafast极快最大
fast较大
medium正常(默认)正常
slow较小
veryslow极慢最小

建议: 临时跑用 fast,最终交付用 slow

降分辨率

分辨率小,文件小很多:

ffmpeg -i input.mp4 -vf scale=-2:720 -c:v libx264 -crf 23 output.mp4
参数含义
-vf scale=-2:720-vf 是视频滤镜,scale 缩放视频
-2宽度自动算,保持宽高比
720目标高度,单位像素(720p)

常见档位:

  • scale=-2:2160 → 4K
  • scale=-2:1080 → 1080p(Full HD)
  • scale=-2:720 → 720p(HD)
  • scale=-2:480 → 480p(SD)

顺手压缩音频

加上音频压缩,文件能再小一些:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4
参数含义
-c:a aac-c:a 是音频编码器,aac 是常用音频格式
-b:a 128k音频码率:128 Kbit/s

音频码率参考:

  • 320k → 高品质音乐
  • 192k → 优质
  • 128k → 标准(推荐)
  • 96k → 语音可用

完整示例

平衡(推荐)

画质好,体积合理:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4

最小体积

网络分享,画质要求不高:

ffmpeg -i input.mp4 -vf scale=-2:720 -c:v libx264 -crf 28 -preset slow -c:a aac -b:a 96k output.mp4

最佳画质

存档,尽量保留画质:

ffmpeg -i input.mp4 -c:v libx264 -crf 18 -preset slow -c:a aac -b:a 192k output.mp4

用 FFHub API 跑

把命令丢给 FFHub,云端处理:

curl -X POST https://api.ffhub.io/v1/tasks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "command": "ffmpeg -i https://your-storage.com/input.mp4 -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4"
  }'

注意: 把输入 URL 换成你的视频地址。处理完成后 FFHub 返回下载链接。

速查表

目的命令
基础压缩ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4
更小文件ffmpeg -i input.mp4 -c:v libx264 -crf 28 output.mp4
更高画质ffmpeg -i input.mp4 -c:v libx264 -crf 18 output.mp4
缩到 720pffmpeg -i input.mp4 -vf scale=-2:720 -c:v libx264 -crf 23 output.mp4
含音频ffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4
FFmpeg 视频压缩 — FFHub Docs