跳到主要内容
SubtitleMatrix

字幕区间内平移

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

选项

把每条字幕移动多少毫秒。正数让字幕更晚出现,负数让它更早。零是合法值:文件原样返回,可以用它快速确认文件是否已经对齐。

只有开始时间不早于这个时刻的字幕才会被移动。留空则从文件开头起全部移动。

只有开始时间不晚于这个时刻的字幕才会被移动。留空则一直处理到文件末尾。

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

这一页只平移开始时间落在某个时间区间内的字幕,文件其余部分原样保留。设定区间的开始与结束、给出偏移,区间内出现的字幕会移动,区间前后的内容保持原有计时。它适合修一部长片里的某一场戏或一集里的某一段,而不扰动文件其他位置的对齐。

一条字幕算在区间内,是指它的开始时间落在两个边界之间,且两个边界都包含在内。这条规则故意看“开始在哪”而不是“有多大比例与区间重叠”,因为跨边界的字幕——开始于区间之前、结束于区间之内——否则就会一半在内一半在外,而半个平移不是平移。你也可以只给一个边界:只填开始时,从那一刻到文件结尾都移动;只填结束时,它之前的全部移动。

如果偏移把一组字幕拉到了它前面的字幕之前,文件的时间就不再升序,页面会报告这件事。字幕块本身保持到达时的顺序与编号,因为写出器有意恢复源文件的块顺序——于是你得到的文件不再按时间排序。这里不做重新编号,那是另一件事。

SRT、WebVTT、ASS、SSA、SBV、SAMI、MicroDVD、TTML、JSON、CSV 都接受,各自按真实格式读取。纯文本与 LRC 被拒绝,因为它们不存结束时间,偏移没有可移动的对象。文件不上传,整季一次排队跑完。

示例

把一场戏整体后移一点

输入

1
00:00:01,000 --> 00:00:02,000
Before the range.

2
00:00:05,000 --> 00:00:06,000
On the lower edge.

3
00:00:07,000 --> 00:00:08,000
Inside.

4
00:00:12,000 --> 00:00:13,000
After the range.

输出

1
00:00:01,000 --> 00:00:02,000
Before the range.

2
00:00:05,300 --> 00:00:06,300
On the lower edge.

3
00:00:07,300 --> 00:00:08,300
Inside.

4
00:00:12,000 --> 00:00:13,000
After the range.

第二条字幕正好从下边界开始,它移动了——两个边界都包含在内。第一条和第四条在区间之外,原样返回,这正是这一页的意义。

把靠后的一组拉回到前面一组之前

输入

1
00:00:10,000 --> 00:00:11,000
Early in the file.

2
00:00:20,000 --> 00:00:21,000
Late in the file.

输出

1
00:00:10,000 --> 00:00:11,000
Early in the file.

2
00:00:05,000 --> 00:00:06,000
Late in the file.

第二条被拉回 5 秒,于是它在时间上跑到了第一条前面,而两个字幕块保持到达时的顺序与编号。文件的时间不再升序,页面会明确说明。

常见问题

哪些字幕算落在平移区间内?

开始时间落在两个边界之间的那些,且区间两端都包含。正好从任一边界开始的字幕也在内。判据是开始在哪,而不是与区间重叠多少,所以开始于区间之前、结束于区间之内的字幕留在原处。

区间内平移为什么按开始时间判断,而不看整条字幕?

因为跨边界的字幕只有一部分在区间内,而没有合理的办法只移动一条字幕的一部分。按开始判断能给每条字幕一个确定的答案,也符合你对一场戏的直觉:字幕出现的瞬间决定了它属于哪一段。

能只平移某个时刻之后的所有字幕吗?

可以。只填下边界、把上边界留空,每个从该时刻或之后开始的字幕都会移动,之前的不动。反过来只填上边界,就会移动它之前的全部内容。

区间内没有任何字幕开始时会发生什么?

文件原样返回。没有应用偏移,也没有删除字幕,输出与输入相同——这也意味着页面没有结果可报告。如果你预期它会动,请拿区间对照文件自身的时间码,而不是对照一条已经被平移过的轴。

把一组字幕往前拉之后,输出还按时间排序吗?

不一定,页面会在不排序时报告。把一组字幕拉过它前面的字幕,文件时间就不再升序,而字幕块保持原来的顺序和编号。不同播放器处理方式不同,所以把一组拉过邻居之后要检查结果。

区间内平移会重写字幕序号吗?

不会。每条字幕都保留到达时的编号,没有被碰过的也一样。重新编号是独立的工作,在这里做会改动你没问过的行,而正是这一点让区间平移可以安全地用于长文件的某一场戏。

相关工具