公众号旧文

为什么60帧不是真的60帧,而是59.94帧?

作者:胖子阅读 —

我挖出了一个70年前的技术遗产。

今天我在整理自己的视频库。

这些视频是用 yt-dlp 下载的,大部分是舞台视频和 MV。

我想做一件很普通的事情:

把所有 4K60P的视频筛选出来。

于是我写了个脚本,用 ffprobe 扫描每个视频的分辨率和帧率。

扫描结果出来之后,我发现事情有点不对劲。

列表里是这样的:

3840 × 2160  60
3840 × 2160  59.94
3840 × 2160  23.976
1920 × 1080  30

60帧我能理解。 24帧我也能理解。

但 59.94 是什么鬼?

更奇怪的是,很多视频居然是:

23.976 fps

看起来像是有人故意把帧率改成一个奇怪的小数。

经过一番探究我才发现,这个问题的答案,要从 70年前的电视机说起。

一、最早的电视,其实是30帧

在黑白电视时代,美国采用的电视标准叫 NTSC。

当时电视信号的电力频率是 60Hz。

为了和电网同步,电视的扫描频率也设计成:

60 次扫描 / 秒

但电视采用的是 隔行扫描。

简单来说,一帧画面不是一次扫出来的,而是分两次:

  • 第一次扫奇数行
  • 第二次扫偶数行

这样一来:

60 次扫描
= 30 帧画面

所以早期电视的帧率其实是:

30 fps

到这里,一切都还很正常。

直到 彩色电视出现。

二、彩色电视带来了一个巨大的兼容问题

1950年代,美国准备在电视信号中加入 彩色信息。

问题来了:

如果直接把彩色信号加入广播,老的黑白电视机会受到干扰。

换句话说:

如果处理不好,全美国几千万台电视都会出问题。

工程师必须找到一个办法:

  • 新电视能显示彩色
  • 旧电视还能正常看节目

最后他们做了一个看起来很奇怪的决定:

把整个电视系统的频率降低 0.1%。

三、一个奇怪的小数诞生了

新的帧率计算方式变成:

30 ÷ 1.001

结果是:

29.97 fps

同样的逻辑:

60 ÷ 1.001

得到:

59.94 fps

于是世界上就出现了一些奇怪的帧率:

29.97 fps
59.94 fps

这些数字从1953年开始,一直沿用到今天。

四、电影为什么是23.976?

电影工业的标准帧率是:

24 fps

但如果电影要在电视上播放,就必须匹配电视系统。

于是工程师又做了一次同样的调整:

24 ÷ 1.001

得到:

23.976 fps

所以现在的视频世界其实有两套帧率体系:

电影体系:

24
30
60

电视体系:

23.976
29.97
59.94

五、为什么视频网站显示60fps?

如果你在视频网站上看视频,通常只会看到:

60fps

而不会看到 59.94。

这是因为平台通常会 四舍五入显示,让普通用户更容易理解。

但如果你用视频工具查看文件,比如 ffprobe,就会看到真实帧率:

59.94 fps

这就是我今天在扫描视频库时看到的那个奇怪数字。

六、一个70年前的决定,还在影响今天

今天我只是想筛选几个 4K60的视频。

结果却发现:

我们今天看到的 59.94fps,其实是 1953年彩色电视标准留下的历史遗产。

70年前的工程师为了让黑白电视继续工作,只做了一个很小的调整。

把帧率降低 0.1%。

但这个小小的改动,一直影响到今天:

  • 摄像机
  • 电视台
  • 视频编码器
  • 视频网站

甚至你电脑里的视频文件。

有时候,技术历史比技术本身更有意思,

一个看起来毫不起眼的数字, 背后可能藏着一整段历史。