跳到主要内容
SubtitleMatrix

字幕帧率转换

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

选项

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

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

帧率转换改变的是字幕时间轴的速度:每个时间戳乘以同一个比例,比例由两个帧率算出。第一个框填文件当初按哪个帧率计时,第二个框填你接下来要配的版本。比例是前者除以后者,所以 23.976 换到 25 得到 0.95904,整条时间轴提前约 4.1%。

方向就是整个工具的关键,也是最容易做反的地方。除数是你将要播放的版本,不是手里现有的版本。PAL 的例子最直观:24 帧拍摄、25 帧播出的影片,同样的画面快放 4%,100 分钟的片子变成 96 分钟的带子;按电影计时的字幕必须乘 96 才能坐上去,而从 PAL 回到电影母版则要乘 104.1667。两个帧率填反,时间轴会以同样的幅度往反方向跑,文件看起来仍像正常字幕——所以两个框都带标签。

常见的配对是:23.976 与 25 互转对应 NTSC 电影与 PAL;24 与 25 互转对应电影母版与 PAL;50 到 25 对应隔行素材被数了两遍;23.976 与 29.97 对应按错误帧数计时的时间轴。本组另外六页会填好框并解释每种配对,这一页处理其余任意组合,两个框接受 29.97、30、59.94、60 等任意帧率。

MicroDVD 的 .sub 是例外:它的时间码是帧号而不是时钟值。同样的画面换速播放,帧号不变——第 50 帧在两个版本里都是第 50 帧——所以转换不动这些数字,只改文件首行声明的帧率。SRT、WebVTT、ASS、SSA、SBV、SAMI、TTML、JSON、CSV 都按真实格式读取;纯文本与 LRC 不接受,因为不存结束时间,比例无处施加。文件不上传,整季可一次排队跑完。

示例

两个框默认的那一对

输入

1
00:00:02,000 --> 00:00:04,000
Hello there.

2
00:00:30,000 --> 00:00:32,000
Half a minute in.

输出

1
00:00:01,918 --> 00:00:03,836
Hello there.

2
00:00:28,771 --> 00:00:30,689
Half a minute in.

23.976 换成 25 是 0.95904,每个时间戳保留 95.904%。2 秒处的字幕移动 82 毫秒,30 秒处的移动 1229 毫秒——离零点十五倍远,就移动十五倍。文件其余部分不变,每条字幕的两端乘同一个数,因此长度也按同比例缩短。

为什么帧号原地不动

输入

{1}{1}25
{50}{100}Hello
{150}{200}World

输出

{1}{1}24
{50}{100}Hello
{150}{200}World

看起来像什么都没发生,帧号确实没动——同样的画面换速播放,仍然是第 50、100、150、200 帧。改变的是格式首行声明的帧率:25 变成 24,播放器据此把字幕放到新位置。若同一份文件没有任何帧率声明,帧号就会被乘,那适用于“按错误帧计时”的文件,而不是换速播放的文件。

常见问题

字幕帧率转换的两个框,哪个填源帧率?

第一个框填文件当初计时的帧率,也就是字幕为哪个版本制作,而不是你马上要看的视频。乘数是第一框除第二框:为 24 帧制作、要配 25 帧的文件取 0.96,同一份文件从 PAL 回来取 1.0416667。这两个数只有成对出现才有意义。

字幕帧率转换可以填列表之外的帧率吗?

可以。算术上两个框是自由文本,比例按你填入的值计算,29.97、30、48、59.94、60 都能用。本组六页存在,是因为那几对在实际工作中最常见,而且专页能解释成因;只知道比例而不知道帧率时,去时间轴组的比例缩放页直接填百分比。

帧率转换后每条字幕为什么都变短了?

因为每条字幕的两端乘的是同一个比例。两秒的字幕在 0.96 下变成 1.92 秒,在 0.95904 下变成 1.918 秒。文字没有被裁掉,只是整条时间轴播放得更快,于是每行的阅读速度也相应提高约 4%,交付 PAL 版本前值得检查。

MicroDVD 字幕做帧率转换时帧号为什么不变?

因为它的时间码是帧号,而画面并没有被改动——同样的镜头换速播放仍是同样的帧。转换改写的是文件首行声明的帧率,播放器靠它把帧号还原成秒。若 .sub 的时间轴是按错误帧数计时的,帧号才需要变,那是 23.976 到 29.97 那一页。

字幕帧率转换两个框填同一个帧率会怎样?

什么都不会发生,页面也会如实说明,而不是假装工作。比例为一意味着恒等映射,文件逐字节原样返回。这本身也是有用的检查:把同一帧率填进两个框,你看到的就是解析器与写入器对文件做了什么,上面没有帧率算术。

有了通用帧率转换,还需要 23.976 转 25 那些专页吗?

功能上不需要,这一页能处理任意一对。那些页面是快捷入口:替你填好两个框,并解释这一对的来历——24 与 25 是电影对 PAL,23.976 与 25 是 NTSC 电影对 PAL,23.976 与 29.97 是帧数混用,50 到 25 是隔行被数两遍。它们多给的只是“为什么你的文件需要它”。

相关工具