首页 / FFmpeg 入门教程 / 分辨率、帧率、码率与色度采样

FFmpeg 入门教程

分辨率、帧率、码率与色度采样

本教程共 32 篇 · 第 7 篇 · 更新于 2026-08-09 · 约 8 分钟阅读

FFmpeg分辨率帧率码率色度采样YUV色深

本节目标:搞懂决定视频画质和文件体积的四个关键参数,以后看到 1080p60、4Mbps、4:2:0 不再犯晕。

上一章我们把「容器、编码、流」理顺了。这一章深入到流本身,看看里面有哪些参数会影响你看到的画面和文件大小。

分辨率

视频的每一帧本质是一张位图,分辨率就是这张图的宽和高,单位是像素。

常见分辨率:

名称宽 × 高俗称
360p640 × 360流畅
480p854 × 480标清
720p1280 × 720高清 HD
1080p1920 × 1080全高清 FHD
1440p2560 × 14402K QHD
2160p3840 × 21604K UHD

分辨率直接决定画面的细节上限。屏幕多大就配多大分辨率:手机看 720p 够了,电脑看 1080p,大电视才需要 4K。盲目追求 4K 只会让文件膨胀,手机上根本看不出区别。

宽高比(aspect ratio)是宽除以高,常见的有:

  • 16:9:横屏视频的标准,1920×1080 就是。
  • 9:16:竖屏短视频,1080×1920。
  • 4:3:老电视、老录像带。
  • 21:9:电影宽银幕。
Tip

很多编码器要求宽高是偶数(H.264 通常要求 2 的倍数,4:2:0 下最好是 2 的倍数,某些格式还要求 16 的倍数)。用 scale 滤镜时用 -2 代替 -1 可以让 FFmpeg 自动算成偶数:

ffmpeg -i input.mp4 -vf scale=1280:-2 output.mp4

帧率(fps)

帧率是每秒播放多少张图片,单位是 fps(frames per second)。

  • 24fps:电影标准,有「电影感」。
  • 25/30fps:电视、网络视频最常见。
  • 50/60fps:游戏、运动画面、高动态视频,动作更流畅。
  • 120/240fps:慢动作素材,后期放慢仍然顺滑。

人眼对帧率的感知有阈值:低于 24fps 会感觉卡顿,30 到 60 之间是明显的流畅度提升,超过 60 以后提升就没那么明显了。

帧率越高,文件越大——但不是线性翻倍。因为编码器会利用帧间压缩,相邻帧很相似时只存差异。所以 60fps 的视频通常不会是 30fps 体积的两倍,而大约是 1.5 倍左右。

用 ffmpeg 改帧率:

ffmpeg -i input.mp4 -r 30 output.mp4

-r 30 表示输出 30fps。但更推荐通过滤镜或编码参数处理,简单的 -r 在某些情况下会造成音画不同步,后面讲滤镜时会展开。

码率(bitrate)

码率是每秒视频数据占用的比特数,单位通常是 kbps(千比特每秒)或 Mbps(兆比特每秒)。它是影响体积和画质最直接的参数:

文件大小 ≈ 总码率 × 时长 ÷ 8

比如一个 10 分钟、总码率 5 Mbps 的视频:

5 Mbps × 600 秒 ÷ 8 = 375 MB

码率越高,编码器能保留的细节越多,画质越好,但文件越大。码率低到一定程度,画面会出现色块、模糊、拖影——这叫「码率不够用了」。

码率多少合适没有标准答案,取决于:

  • 分辨率:1080p 当然比 720p 需要更高码率。
  • 帧率:60fps 比 30fps 需要更多码率。
  • 画面复杂度:体育比赛、游戏、雪花噪点需要高码率;谈话、PPT 录像低码率就够。
  • 编码效率:HEVC 比 H.264 省一半码率,AV1 更省。

作为参考,这里是常见平台的建议值(H.264,SDR):

分辨率30fps 码率60fps 码率
720p5 Mbps7.5 Mbps
1080p8 Mbps12 Mbps
1440p16 Mbps24 Mbps
2160p35-45 Mbps53-68 Mbps

音频的码率独立计算:AAC 立体声一般 128 kbps 就够,高质量用 192-256 kbps;MP3 常见 128-320 kbps。

三种码率控制方式

  • CBR(Constant Bitrate):恒定码率。每秒都给同样多的比特数,适合直播和流媒体,但浪费空间。
  • VBR(Variable Bitrate):可变码率。复杂画面给多、简单画面给少,体积更小,画质更好。
  • CRF(Constant Rate Factor):恒定质量。由你指定一个质量等级,码率自动浮动,是离线转码最推荐的模式。

CRF 的具体取值和编码器调优会在编码篇(§19)详细讲,现在知道有这么回事就行。

色深(bit depth)

色深指每个颜色通道用多少位来表示。最常见的是 8 bit,即每个通道 256 级(2⁸=256),三通道组合约 1677 万色。

近几年 10 bit 逐渐普及(每个通道 1024 级),HDR 视频基本都用 10 bit。10 bit 的好处:

  • 渐变画面(天空、阴影)不容易出现「色带」。
  • 后期调色空间更大。
  • 同样码率下,10 bit 编码器效率反而更高(因为减少了条带噪声)。

用 ffmpeg 指定像素格式可以控制色深:

ffmpeg -i input.mp4 -pix_fmt yuv420p output.mp4       # 8 bit 4:2:0
ffmpeg -i input.mp4 -pix_fmt yuv420p10le output.mp4    # 10 bit 4:2:0

查看支持的像素格式:

ffmpeg -pix_fmts

色度采样(chroma subsampling)

这是新手最容易被名字唬住的概念,其实原理很简单。

人眼对**亮度(luma)的变化很敏感,对颜色(chroma)**的变化相对迟钝。于是视频编码就利用这一点:亮度每个像素都记,颜色则几个像素共享一份。这就是色度采样。

YUV 色彩空间

视频里一般不用 RGB,而用 YUV:

  • Y:亮度(黑白图像)。
  • U(Cb):蓝色差。
  • V(Cr):红色差。

把 Y、U、V 分开,就可以对亮度全采样、对色度降采样。

4:4:4、4:2:2、4:2:0 怎么读

记法是 J:a:b,表示在一个 4 像素宽、2 像素高的区域内:

  • 第一个数 J:每行亮度采样数,通常是 4。
  • 第二个数 a:第一行色度采样数。
  • 第三个数 b:第二行色度采样数(0 表示和第一行共用,不单独采)。

直观理解:

格式色度采样比例色度信息丢失典型用途
4:4:4100%专业制作、绿幕、图形界面
4:2:250%一半色度专业摄像、广播电视
4:2:025%四分之三色度消费级视频、网络传播、蓝光

我们日常看的视频几乎都是 4:2:0。它丢掉了 75% 的色度信息,但因为人眼不敏感,几乎看不出来,却能省掉大量体积。

ffprobe 输出里的 yuv420p 表示「YUV 色彩空间、4:2:0 色度采样、planar 平面存储」。这里的 p 是 planar(平面),意思是 Y、U、V 三个分量分开存放;与之相对的是 packed(打包)格式,各分量交错存在一起。注意它和「逐行/隔行扫描」不是一回事——后者是场编码方式,在编码器层面设置,不在像素格式名里。

Note

色度采样和色深是两回事:4:2:0 是色度「分辨率」降了,10 bit 是亮度和色度各自的「精度」高了。两者可以组合,比如 yuv420p10le 就是 4:2:0 + 10 bit。

串起来看

一个 1080p 30fps 的 H.264 视频,yuv420p、8 bit、8 Mbps,这些参数合在一起才描述清楚它的画质。改任何一个都会影响最终效果:

  • 把分辨率砍到 720p,文件小了但细节没了。
  • 把帧率降到 24fps,运动没那么顺滑。
  • 把码率压到 2 Mbps,画面开始糊。
  • 换成 HEVC 编码,同画质体积能小一半。

没有「最好」的参数,只有「最合适」的取舍。后续章节我们会用 ffmpeg 实际调整这些参数。

小结

  • 分辨率决定画面尺寸,常见 1080p、4K;宽高尽量保持偶数。
  • 帧率决定流畅度,24/30/60fps 最常见。
  • 码率决定每秒数据量,直接影响体积和画质;CRF 是最推荐的控制方式。
  • 色深是颜色精度,8 bit 通用,10 bit 适合 HDR。
  • 色度采样在 YUV 下省体积,4:2:0 最普遍,几乎看不出损失。

下一章讲三种最基础的处理方式:转码、转封装和流复制。