字幕重叠检测
或者粘贴字幕文本
选项
时间按哪个帧率计算。在格式页面里,这是 MicroDVD 需要的值,因为它把时间存成帧号。在帧率页面里,它是文件当初对应的速率 —— 字幕是按这个版本做的 —— 而页面的第二个框填你要拿它配套的视频速率。常见的有 23.976、24、25、29.97、30、50、59.94 和 60。填错会让整条时间轴偏移;在帧率页面里,偏移是按比例发生的,而不是一个固定的量。
重叠字幕是共享屏幕的两条字幕:后一条在前一条结束之前就开始了。这一页找出它们,逐条给出两条字幕共享了多少毫秒。它不改文件——原件保持原样,你拿到一份可以下载的报告:PDF 用来读,CSV 用来排序。
重叠不自动等于错误。两个人抢话、手工对齐的时间轴、从别的格式转换过来的字幕都会产生重叠,其中一些是故意的。值得列出来的原因是播放器无法在同一位置同时画两条字幕:观众看到的由播放器替你决定,可能已经不是文件写的那样。要看的是共享毫秒数——400 毫秒像一次闪烁,好几秒通常意味着某个时间码贴错了位置。
报告也会说清它没能检查什么。不存结束时间的格式量不了重叠;结束不晚于开始的字幕条会在读取时被修复,那笔修复列在报告顶部,而不是悄悄折进发现里。没有问题的文件也会得到一份写着检查过、没发现的报告——已检查和不可检查是两句不同的话,这一页把它们分开。
判定对着目前到达过的最远结束点做,而不是紧挨着的前一条,所以嵌套在长字幕里的短条目会逐条被发现。支持十种带起止时间的格式,报告里还有文件名、读取格式、条数与帧率等表头信息。批量可一次跑完,文件不上传。
示例
两条共享一秒的字幕
字幕
1
00:00:01,000 --> 00:00:04,000
First line.
2
00:00:03,000 --> 00:00:06,000
Second line, starting early.
报告发现了什么
Overlapping cues — 1 found
Severity Cues Start End Measured
Error 1, 2 00:00:03.000 00:00:04.000 1000 ms
第二条在第一条还在屏幕上时就开始了。实测值是共享区间——第一条的结束减第二条的开始——而不是任何一条字幕的长度。
嵌套在长字幕里的两条短字幕
字幕
1
00:00:00,000 --> 00:00:10,000
Long opening line.
2
00:00:01,000 --> 00:00:02,000
Nested inside it.
3
00:00:03,000 --> 00:00:04,000
Also nested inside it.
报告发现了什么
Overlapping cues — 2 found
Severity Cues Start End Measured
Error 1, 2 00:00:01.000 00:00:02.000 1000 ms
Error 1, 3 00:00:03.000 00:00:04.000 1000 ms
两条短字幕都与长字幕重叠,彼此之间不重叠。每次比较都对着目前到达过的最远结束点做,所以第二条短字幕也会被发现,哪怕紧挨着它的前一条并没有到达它。
常见问题
字幕重叠检测在什么条件下判为重叠?
一条字幕的开始时间早于文件中已经到达过的最远结束时间。首尾正好相接——一条在 00:00:04,000 结束、下一条在 00:00:04,000 开始——不算重叠,永远不会被列出;1 毫秒的重叠会被列出,因为它确实重叠了。
首尾正好相接的两条字幕会被字幕重叠检测报告吗?
不会。相接是正确的时间安排,没有共享区间,发现数为零。报告仍然会写着检查跑过——那和文件无法检查是两句不同的话。
字幕重叠检测里的重叠量是怎么算的?
从后一条的开始到两条中较早的结束,单位毫秒。完全嵌在长字幕里的短条目,整条都是重叠。比较对着目前到达过的最远结束点做,所以三条叠在同一时刻会产生两条发现而不是一条。
为什么有重叠的文件在播放器里看起来却很正常?
因为两条字幕撞在同一时刻时,画哪一条由播放器决定,而这个决定不在文件里。有的播放器显示后一条,有的叠在一起,带定位的字幕还可能待在角落里看不出冲突;报告告诉你文件实际写了什么。
字幕重叠检测会删掉重叠吗?
不会。文件被读取、报告被生成,没有一个时间码被重写。去重叠是另一项操作,把检查与修复分开意味着你交给别人的报告描述的是原始文件。
字幕重叠检测的报告里有什么?
文件、读取格式、字幕条数,存有帧号的格式还有帧率;读取时必须修复的内容单独一行;之后每项检查一节,逐条给出字幕条序号、两个时间码与共享毫秒。同样的内容有 PDF 与 CSV 两份。
字幕重叠检测支持哪些格式?
十种同时带起止时间的格式:SRT、WebVTT、ASS、SSA、SBV、SMI、MicroDVD、TTML、JSON 与 CSV。LRC 与纯文本每行只有一个时间点,没有可比较的对象,需要先转换。