使用 FFmpeg 压缩视频

面向新手的 FFmpeg 视频压缩指南,详细解释每个参数的含义。

本指南介绍如何使用 FFmpeg 压缩视频,并详细解释每个参数的作用。

理解基础命令

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

逐个解释每个部分:

参数含义
ffmpeg我们要运行的程序
-i input.mp4-i 表示「输入」,后面跟源文件名
-b:v 1M-b:v 表示「视频码率」,1M = 每秒 1 兆比特
output.mp4输出文件名(总是放在最后)

什么是码率? 码率是视频每秒使用的数据量。码率越高 = 画质越好,但文件越大。码率越低 = 文件越小,但画质越差。

方法一:CRF(推荐新手使用)

CRF(恒定质量因子)是最简单的压缩方式,你只需要选择一个质量等级:

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较低预览、草稿

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

方法二:指定文件大小

如果需要控制文件大小,使用码率模式:

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

常用码率参考:

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

编码速度:预设

-preset 参数控制编码速度:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset fast output.mp4
预设速度文件大小
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(全高清)
  • scale=-2:720 → 720p(高清)
  • scale=-2:480 → 480p(标清)

同时压缩音频

加上音频压缩,进一步减小文件:

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 千比特

音频码率参考:

  • 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