跳到主要内容
SubtitleMatrix

23.976 转 29.97 帧修正

时间轴帧率转换
或者粘贴字幕文本

选项

时间按哪个帧率计算。在格式页面里,这是 MicroDVD 需要的值,因为它把时间存成帧号。在帧率页面里,它是文件当初对应的速率 —— 字幕是按这个版本做的 —— 而页面的第二个框填你要拿它配套的视频速率。常见的有 23.976、24、25、29.97、30、50、59.94 和 60。填错会让整条时间轴偏移;在帧率页面里,偏移是按比例发生的,而不是一个固定的量。

你要拿字幕配套的那个版本的帧率 —— 也就是你实际要播放的视频。套用的系数是第一个框除以这一个,所以 24 转 25 得到 0.96:影片在 PAL 上快 4%,100 分钟的片子正好装进 96 分钟的磁带。两个框填反了,整条时间轴会朝错误的方向偏移同样的量。

这一页处理按 23.976 fps 计时、却要放到 29.97 时间轴上的字幕。每个时间戳乘以 0.8——正好五分之四——文件因此缩短五分之一:1 分钟处的字幕变成 48 秒,一部 24 分钟的剧集若字幕声称 30 分钟,回来就正好是 24 分钟。两个框已经填好,帧率不是这个就改掉。

错误出在“帧号变秒”的那一步算术里。如果工具把属于 29.97 时间轴的帧号按 23.976 去除,它产出的每一秒都大了四分之一:29.97 除以 23.976 是 1.25,整条时间轴被拉长四分之一,字幕越到后面越晚。乘以 0.8 就是把这同一个错误除回去。

有一件事这一页绝不能做,而它也是本组最容易犯的错。装在 NTSC 信号里的电影会做 3:2 下拉,用重复帧填满 29.97 信号,下拉不改变片长。所以“我的视频是 29.97 且带下拉”不是转换的理由:按那条视频计时的文件本来就正确,乘 0.8 会砍掉五分之一。这一页处理的是帧号按错误帧率计时的文件,不是仅仅装在 29.97 容器里的文件。

这一对好算,是因为 0.8 是精确值。两个帧率同属 NTSC 家族、都带着除以 1001,1001 约掉后 23.976 比 29.97 就是 24000 比 30000,正好五分之四,没有取整也没有余数。每条字幕的显示时间少五分之一,每行阅读速度因此提高 25%。文件不上传,整季一次排队跑完;十种文本格式都按真实内容读取。

示例

一短一长两条字幕

输入

1
00:00:01,000 --> 00:00:03,000
Hello there.

2
00:01:00,000 --> 00:01:02,000
One minute in.

输出

1
00:00:00,800 --> 00:00:02,400
Hello there.

2
00:00:48,000 --> 00:00:49,600
One minute in.

0.8 就是 23.976 除以 29.97。1 秒处的字幕少 200 毫秒,1 分钟处的少 12000 毫秒——离零点六十倍远,就移动六十倍。两端同乘,两秒的一行只剩 1.6 秒,阅读速度的提升正来自这里。

迟到量随时钟增长

输入

1
00:10:00,000 --> 00:10:02,000
Ten minutes in.

2
00:30:00,000 --> 00:30:02,000
Half an hour in.

输出

1
00:08:00,000 --> 00:08:01,600
Ten minutes in.

2
00:24:00,000 --> 00:24:01,600
Half an hour in.

10 分钟处晚 2 分钟,半小时处晚 6 分钟——两种情况下都正好是已过时间的三分之一,这是比例问题的典型样子。固定偏移永远修不好,比例可以。转换后的检查放在文件末尾:用最后一条字幕的新时间戳打开,那一行应该在那里。

常见问题

23.976 转 29.97 的系数为什么正好是 0.8?

因为两个帧率都是 NTSC 帧率、都是某个整数除以 1001:23.976 是 24000/1001,29.97 是 30000/1001。相除时两边的 1001 一起约掉,只剩 24000 比 30000,即五分之四。所以这里没有取整也没有近似,1 分钟处的字幕精确落在 48 秒。

做过 3:2 下拉的 29.97 视频需要这页吗?

不需要,这正是本页要指出的陷阱。下拉用重复帧填满 29.97 信号,片长不变,所以按该视频计时的字幕本来就正确;转换会砍掉五分之一时间轴,把正确文件弄错。这一页针对的是“帧号属于 29.97 时间轴,却被除以 23.976”的计时。

字幕越到后面越晚四分之一,是 23.976 转 29.97 吗?

先看迟到量是不是已过时间的四分之一。10 分钟处晚 2 分钟、半小时处晚 6 分钟、两小时片长晚半小时,就正是这一对。本组的近亲可以用幅度区分:0.95904 是约 4% 的误差,1.0427094 是 4.271%,而二倍的系数会把片长翻倍。

填 24 和 30 代替 23.976 和 29.97 结果一样吗?

对这一对来说一样:24 除以 30 也是五分之四,与 23.976 比 29.97 相同,因为共有的 1001 无论怎样都会约掉。这是这一对的性质,不是整组的性质——在电影转 PAL 那一页,文件实际是 23.976 却填 24 和 25,会留下每小时 3.5 秒的误差。

时间轴缩短五分之一后阅读速度会超限吗?

值得检查,因为文字不会跟着变短:原本稳稳低于每秒字符数上限的一行,可能被 25% 的提速推过线。站内的无障碍工具按标准阈值测量阅读速度,应该看那个数字,而不是凭“字幕好像变赶了”的印象。

把电影字幕放到 NTSC DVD 上要用这页吗?

不用。NTSC 碟里的电影以 23.976 存储,播放时由播放器做下拉,按电影计时的文件完全不需要改,0.8 会毁掉它。若文件是按该片的 PAL 副本计时、现在要回到碟上,配对是 25 转 23.976,系数 1.0427094,方向相反的小幅修正。

相关工具