跳到主要内容
SubtitleMatrix

字幕按帧平移

时间轴按固定偏移平移
或者粘贴字幕文本

选项

要移动的整帧数,会按下面的帧率换算。源文件是 MicroDVD .sub,或者你手上的记录是按帧而不是按秒计时时,用这个。

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

这一页按帧数平移字幕。给它十二帧和一个帧率,每条字幕就精确移动这么多——两端一起动,所以没有字幕改变长度。当你手里的数字是帧号而不是时间时,就该用它:从剪辑时间轴读出的位置、质检记录的一条备注,或者一份 MicroDVD .sub,它只按帧计数。

帧率在这一页不是细节,而是算式的一半。帧换算成毫秒,是除以帧率再乘一千,所以无论输出是什么格式,你给的帧率都会用在每条字幕上。十二帧在 25 fps 下是 480 毫秒,24 下是 500 毫秒,23.976 下是 500.5 毫秒——这就是这个框必填、旁边还列出常用帧率的原因。帧率填错不会大声失败,而是把整条时间轴按比例滑动,一小时的文件上可能就是几分钟。

不能落在整毫秒上的帧偏移会在一切开始之前先取整一次,因为没有任何字幕格式保存小数毫秒。之后所有处理都在整数毫秒上进行,预览与下载文件因此描述同一条时间轴。

偏移作用于整条时间轴。被推到文件起点之前的字幕,开始钉在 00:00:00,结束仍然移动,所以那条字幕变短;结束时间落在零点或之前的字幕被删除。十种文本格式都接受并按真实内容读取。文件不上传,队列一次吞下整季。

示例

25 fps 下的十二帧

输入

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

2
00:00:05,500 --> 00:00:08,000
Second line.

输出

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

2
00:00:05,980 --> 00:00:08,480
Second line.

25 fps 下十二帧是 480 毫秒。整数帧率给出整数结果,这是最容易和你读帧号的时间轴对照检查的情况。

同样的十二帧,在 23.976 fps 下

输入

1
00:00:01,000 --> 00:00:03,000
Twenty-three point nine seven six.

输出

1
00:00:01,501 --> 00:00:03,501
Twenty-three point nine seven six.

500.5 毫秒在偏移应用之前一次性取整为 501。没有任何东西被留成半毫秒的偏差。

常见问题

为什么按帧平移需要帧率,而别的平移页不需要?

因为这里的帧率是算式的一部分,而不是文件的属性。只有知道每秒通过多少帧,帧数才是一段时间,所以框里的数字会被用来为所有格式计算偏移。毫秒平移页只在读写 MicroDVD 时需要帧率,所以那里可以不动它。

23.976 fps 的影片,字幕按帧平移该选哪个帧率?

选 23.976,不是 24。两者接近到短偏移看不出差别,但十二帧在一边是 500 毫秒、另一边是 500.5 毫秒,放到整部影片上会累积成看得见的漂移。如果文件是 MicroDVD .sub,它可能自带帧率声明,按自身时间读取时就以声明为准。

按帧平移的偏移会落在两毫秒之间吗?

换算结果可能落在中间,但会在应用到任何时间戳之前取整到最近的毫秒。没有字幕格式保存小数毫秒,开头只取整一次,能让时间轴保持整数,而不是留下一个会在每个时间戳上取整成不同结果的分数。

按帧平移的帧数必须是整数吗?

是,输入框只接受整数。半帧不是任何播放器能跳到的位置,接受它就意味着替你悄悄取整;让你输入的值和实际使用的值保持一致更好。

帧率框留空会怎样?

页面不会运行,直到它被填写。这是有意的:没有帧率,帧数无法变成一段时长,剩下的选择只有猜一个或悄悄什么都不做,两者都会产出看起来处理过、实际不是你要求的文件。

负数帧可以填吗?

可以。25 fps 下负十帧就是提前 400 毫秒。第一条字幕本会从零点前 200 毫秒开始,于是它的开始被钉在零点,而结束仍然完整移动 400 毫秒。

相关工具