FFmpeg 从入门到深入(二):码率、分辨率、帧率与编码预设怎么选

举报
yd_275955218 发表于 2026/11/14 22:44:38 2026/11/14
【摘要】 系列第二篇。上一篇跑通了安装和两条基础命令,这一篇把转码时最常纠结的四组参数讲清楚:码率、分辨率、帧率、preset。看完你就知道每个参数该填多少、为什么要这么填。 码率:控制体积最直接的手段码率(bitrate)指每秒分配给画面的数据量,单位 kbps。码率越高画质越好、文件越大。视频用 -b:v,音频用 -b:a:ffmpeg -i input.mp4 -c:v libx264 -b:v...

系列第二篇。上一篇跑通了安装和两条基础命令,这一篇把转码时最常纠结的四组参数讲清楚:码率、分辨率、帧率、preset。看完你就知道每个参数该填多少、为什么要这么填。

码率:控制体积最直接的手段

码率(bitrate)指每秒分配给画面的数据量,单位 kbps。码率越高画质越好、文件越大。视频用 -b:v,音频用 -b:a:

ffmpeg -i input.mp4 -c:v libx264 -b:v 2M -c:a aac -b:a 128k output.mp4

但要注意:-b:v 和上一篇的 -crf 是两种思路,不要同时用。CRF 是"画质优先"——你定质量,体积随内容复杂度浮动;-b:v 是"体积优先"——你定体积,画质随内容浮动。日常存档压缩推荐 CRF;给平台上传、有体积上限时才用码率。

码率填多少?一个粗算公式:目标体积(MB) × 8 × 1024 ÷ 时长(秒) = 总码率(kbps),再减去音频码率就是视频码率。比如 10 分钟视频想控制在 200MB:200×8×1024÷600 ≈ 2730kbps,留出音频 128k,视频给 2600k 左右。

想严格卡住体积,用两遍编码(第一遍只分析,不输出成品):

ffmpeg -y -i input.mp4 -c:v libx264 -b:v 2600k -pass 1 -an -f mp4 /dev/null
ffmpeg -i input.mp4 -c:v libx264 -b:v 2600k -pass 2 -c:a aac -b:a 128k output.mp4

Windows 下把 /dev/null 换成 NUL。两遍比一遍慢一倍,但体积控制更精准。

分辨率:scale 滤镜

ffmpeg -i input.mp4 -vf scale=1920:-2 -c:v libx264 -crf 23 output.mp4
  • -vf 是视频滤镜链,这是第一次用到它;
  • scale=宽:高,把高度写成 -2 表示按比例自动算,并且保证结果是偶数(H.264 要求宽高都是偶数,写 -1 可能算出奇数导致报错,习惯写 -2 更稳);
  • 缩小没问题,但不要盲目放大:320p 拉到 1080p 不会变清晰,只会让文件变大。

帧率:-r

ffmpeg -i input.mp4 -r 30 -c:v libx264 -crf 23 output.mp4

帧率减半,码率需求也大致减半,适合录屏、会议这类内容。但动作画面(游戏、运动)降帧会明显卡顿。先看源文件帧率再决定:ffprobe -v error -select_streams v:0 -show_entries stream=r_frame_rate -of csv=p=0 input.mp4。常见值:24(电影感)、25/30(常规)、60(高动态)。

preset:压缩率和速度的权衡

libx264 内置了从 ultrafast 到 veryslow 共 9 档预设,控制编码器"花多少力气找压缩机会":

preset 大致速度 同画质体积
ultrafast 最快 明显偏大
medium(默认) 中等 基准
slow 慢几倍 小 5%~10%
veryslow 最慢 再小一点点

实用建议:批量脚本用 -preset fast 图快;压一次存档不再动的用 slow;veryslow 相比 slow 提升很小,性价比低。

组合起来

手机 4K 视频压成适合分享的 1080p30:

ffmpeg -i input.mp4 -vf scale=1920:-2 -r 30 -c:v libx264 -preset slow -crf 23 -c:a aac -b:a 128k output.mp4

各参数含义串起来就是一句话:先把画面降到 1080p、帧率降到 30,再用质量优先的 CRF 23 和偏慢预设换取更小体积,音频转 AAC 128k。这套组合能覆盖大多数"压一下再分享"的场景。

小结

码率是体积优先、CRF 是质量优先,二选一;scale 缩放记住 -2 保证偶数;降帧看内容类型;preset 在速度和压缩率之间取舍,默认 medium 其实就不差。下一篇讲剪切与合并:-ss/-to 的精确定位,以及 concat 的两种用法和适用场景。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。