非丢帧转丢帧时间码
或者粘贴字幕文本
选项
30 fps 非丢帧与 29.97 丢帧对同一段时钟的写法不同,这个框决定文件按哪种约定读取、又按哪种写回。一小时后的一条字幕,在一种约定下读作 01:00:00,000,在另一种下读作 01:00:03,600 —— 两者每小时差 3.6 秒,不是舍入误差。页面标题点名一个方向,这个框只提供那一个,所以你拿到的就是这一页所讲的那件事。文本完全不变:不会按视频重设时间,不会换算帧率,而一小时中第一分钟内的字幕原样返回,因为那段里没有丢掉任何帧号。
时间按哪个帧率计算。在格式页面里,这是 MicroDVD 需要的值,因为它把时间存成帧号。在帧率页面里,它是文件当初对应的速率 —— 字幕是按这个版本做的 —— 而页面的第二个框填你要拿它配套的视频速率。常见的有 23.976、24、25、29.97、30、50、59.94 和 60。填错会让整条时间轴偏移;在帧率页面里,偏移是按比例发生的,而不是一个固定的量。
这一页把字幕文件里的每一个时间码从 30 fps 非丢帧重新标记为 29.97 fps 丢帧。拖入文件、运行,每条字幕的起止都会换一种写法返回;台词、序号、顺序与硬换行保持不动。
两种约定写的是同一个钟,只是写法不同,而文件必须和后续流程用同一种。丢帧每秒数 30 个标记,但每逢整分钟(每十分钟的整分钟除外)跳过两个,从而跟住真实时间;非丢帧一个不跳,于是慢慢落后。一小时后两者差 3.6 秒:非丢帧的 01:00:00,000 就是丢帧的 01:00:03,600,十小时后差 36 秒。这不是舍入误差,也不会被抹平。
一小时的第一分钟内不会有任何移动,因为那一段没有标记被跳过,两种写法完全相同——前提是时钟本来就落在 30 fps 的帧格上,00:00:02,000 就是。落在两格之间的值会被吸附到最近的格,最多移动 17 毫秒;从帧精确工具里取出的时间本来就在格上,所以这一分钟常常逐字节返回。
这不是帧率转换:不缩放、不拉伸,两条字幕之间的间距保持不变,只改变写法。这里读取的格式——SRT、WebVTT、ASS、SSA、SBV、SAMI、MicroDVD、TTML、JSON 与 CSV——都没有字段记录时间码用的是哪种约定,所以数字变了,约定仍由你的流程决定。帧率框只为 MicroDVD 存在。文件不上传。
示例
一份五分钟处的文件
输入
1
00:05:00,000 --> 00:05:02,000
The room is dark.
2
00:10:00,000 --> 00:10:03,000
A cold night.
输出
1
00:05:00,333 --> 00:05:02,333
The room is dark.
2
00:10:00,600 --> 00:10:03,600
A cold night.
两条字幕移动的量不同,这正是整个操作:五分钟处丢帧已经跳过十个标记,时钟读起来晚 333 毫秒;十分钟处跳过了十八个,晚 600 毫秒。文字与序号是文件自己的——只重写每条字幕的那两个时钟值。
同一份文件在一小时处
输入
1
01:00:00,000 --> 01:00:03,000
An hour into the programme.
输出
1
01:00:03,600 --> 01:00:06,600
An hour into the programme.
一小时处两种约定相差 3.6 秒,也就是 108 个被跳过的标记。核对这一页时看这个数:输出的第一行应当恰好比输入的第一行晚 3600 毫秒。两端都移动,所以字幕长度不变。
常见问题
丢帧与非丢帧时间码的区别是什么?
两者都每秒数 30 个标记,但 29.97 fps 每秒并不真的给出 30 帧,只给约 29.97 帧,所以每秒数 30 个标记的时钟会慢慢落后于真实时间。丢帧每逢整分钟(每十分钟的整分钟除外)跳过两个标记来修正它——被丢掉的是标记,不是画面帧。非丢帧一个不跳,因此会漂移。
为什么一小时的节目会整体后移 3.6 秒?
因为 3.6 秒正是一小时跳号累积的量:每分钟 2 个标记、每 60 分钟里的 54 分钟跳号,每个标记 33.37 毫秒,合 108 个标记、3600 毫秒。页面没有增加延迟,只是把同一批帧用另一种约定写出来;在这个位置,另一种约定读起来更晚。
为什么文件开头的第一分钟原样返回?
因为一小时的第一分钟没有标记被跳过,两种约定写法完全相同,00:00:02,000 在两边都是第 60 帧。唯一的例外是帧格吸附:落在两个 30 fps 帧格之间的值会被挪到最近的一格,最多 17 毫秒;从帧精确工具取出的时间本来就在格上。
我需要哪个方向:非丢帧转丢帧还是反过来?
看文件里的时间码是从哪儿读出来的。如果时间来自设为非丢帧的播放器或剪辑软件,而要交付的流程用丢帧,就是这一页;如果文件是在丢帧显示器上打的标记、下游工具却按非丢帧读,就走相反的那一页,时钟按同样的每小时 3.6 秒往回移。
非丢帧转丢帧会改变字幕的帧率吗?
不会,也不会缩放或拉伸:原本两秒的字幕仍然两秒,字幕之间的间距不变,因为每条移动的量由位置决定而不是比例。25 fps 素材的字幕不会被转到这里;帧率框只为 MicroDVD 这类用帧号存时间的格式存在。
输出文件里会记录时间码现在是丢帧吗?
不会,这里读取的格式也做不到:SRT、WebVTT、ASS、SSA、SBV、SAMI、MicroDVD、TTML、JSON 与 CSV 都只存时间,不存它是怎么数出来的。你拖进来的文件本来也是如此,所以数字变了,约定仍由你的流程声明。
非丢帧转丢帧和帧率转换有什么不同?
这一页只改写法,不按比例重排时间:每条字幕按所在位置移动不同的量,间距与每条长度都保持。按帧率重排整份文件的间距是另一项操作,属于时间轴类页面。