字幕按时间码平移
或者粘贴字幕文本
选项
用钟面时间写要移动的量:00:00:02,500 表示延后两秒半,-00:00:02,500 表示提前两秒半。对着参考视频读数比数毫秒更快。在要求填毫秒的页面上留空即可。
时间按哪个帧率计算。在格式页面里,这是 MicroDVD 需要的值,因为它把时间存成帧号。在帧率页面里,它是文件当初对应的速率 —— 字幕是按这个版本做的 —— 而页面的第二个框填你要拿它配套的视频速率。常见的有 23.976、24、25、29.97、30、50、59.94 和 60。填错会让整条时间轴偏移;在帧率页面里,偏移是按比例发生的,而不是一个固定的量。
这一页用时间码而不是毫秒数来平移字幕。输入 00:00:02,500,每条字幕晚两秒半;输入 -00:00:01,000,每条字幕提前一秒。每条字幕的两端移动同样的量,所以长度保持不变——它与毫秒平移页的唯一区别,只是偏移的写法。
它存在的理由是数字从哪来。当你拿字幕文件去对某个参照——新的片头、插入的广告、另一条能读出位置的时间轴——手里是一对时刻,偏移是两者的差。把差值写成时间码,比在脑子里换算成毫秒少一步,而错误就住在那一步里:00:01:30,000 是九万毫秒,不是九千。
偏移按时钟值读取,并作用于整条时间轴。会被推到文件起点之前的字幕,开始钉在 00:00:00,结束继续移动,因此那条字幕变短;结束时间落在零点或之前的字幕被删除。偏移为零、或偏移无法读取的文件,会逐字节原样返回。
SRT、WebVTT、ASS、SSA、SBV、SAMI、MicroDVD、TTML、JSON、CSV 都按真实格式读取,不看扩展名。纯文本与 LRC 不接受,因为它们不存结束时间,偏移没有可移动的对象。文件不离开你的机器,整季一次排队跑完。
示例
把文件整体推后两秒半
输入
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:03,500 --> 00:00:05,500
Hello there.
2
00:00:08,000 --> 00:00:10,500
Second line.
与在毫秒平移页填 2500 的结果完全相同——每条字幕的两端都移动,没有字幕改变长度。
用负号把文件提前
输入
1
00:00:01,000 --> 00:00:02,000
The first one starts too early.
2
00:00:05,000 --> 00:00:08,000
This one is fine.
输出
1
00:00:00,000 --> 00:00:00,500
The first one starts too early.
2
00:00:03,500 --> 00:00:06,500
This one is fine.
第一条本会从 −500 毫秒开始,于是它的开始钉在零点、只有这一端改变,字幕长度变成 500 毫秒而不是 1000。
常见问题
怎么写出让字幕提前的偏移?
在时间码前加负号:-00:00:02,500 表示提前两秒半。不加负号时同样一串数字会把文件往后推,所以符号就是两个方向之间的全部区别,没有单独的方向控件。
为什么这里用时间码框而不是毫秒框?
因为偏移通常来自两个时钟读数,而不是某人量出的数字。拿文件对参照时,你有一对时刻,偏移是它们的差,那天然是时间码。已经有毫秒数时仍可用毫秒平移页,同样的偏移两页输出一致。
毫秒前可以用点号而不是逗号吗?
可以,小时也可以只写一位。00:00:02,500、00:00:02.500 和 0:00:02.50 都读作 2500 毫秒,因为字幕格式对分隔符的意见并不统一,没有理由让你先翻译再输入。小数部分按你写的位数读取,所以 .5 和 .500 都是半秒。
填入无法识别为时间码的内容会怎样?
偏移被忽略,文件原样返回。这是谨慎的一半——不做猜测,也不替换成任意数字——但它同时是安静的,所以输入框的说明会列出接受的形状,而不是让你自己试。像 2500 这样的裸数字不是时间码,属于毫秒平移页。
时间码偏移会同时移动每条字幕的两端吗?
会。每个开始与每个结束都移动同样的量,所以没有字幕改变时长,也没有字幕改变相对位置。需要改变字幕停留多久时,应使用分别移动开始与结束的两页。
按时间码平移支持哪些字幕格式?
SRT、WebVTT、ASS、SSA、SBV、SAMI、MicroDVD、TTML、JSON、CSV。纯文本与 LRC 被拒绝,因为不存结束时间;MicroDVD 的帧号会经帧率换算后参与平移。