跳到主要内容
SubtitleMatrix

两份字幕合并为一份

文本样式把两轨合并为一份双语文件
或者粘贴字幕文本
或者粘贴第二个文件的文本

选项

两份字幕很少能一条一条完全对上,这个选项决定所有不一致的地方怎么处理。只要一个文件里的某条字幕与另一个文件里的某条在时间上重叠,两者就视为同一时刻并合并,重叠的长度决定结果在屏幕上停留多久。其余部分由这个选项决定。保留两个文件 会把每一条没有对上的字幕都作为单独一行加进来,两个输入里一个字都不会少 —— 但第二个文件原本的时间不会被保留,因为没有对上的字幕仍然得放在第一个文件的时间轴上的某处。保留第一个文件的时间轴 则相反:第一个文件的字幕保持原样的开始与结束,不插入任何新内容,第二个文件里没对上的字幕会被丢弃。运行后的报告总会说明丢了多少条。

两条字幕被视为同一时刻之后,它们的文本必须共享屏幕。排成两行 是双语字幕常见的播出方式,也是大多数播放器期待的形式:第一个文件的行在上,第二个文件的行在下,这条字幕变成双行字幕。这要求该格式允许换行,所以所有只能把一条字幕存成一行的格式都被排除在这一页之外,而不是在这里悄悄拍平。接成一行 会把两种语言放在同一行,用下框里输入的字符分隔 —— 当读者应该先看到译文、原文作为补充时正合适,那是译者的字幕,而不是双语播出的字幕。

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

这一页把两份字幕合成一份。原文放第一个框、译文放第二个框,凡是与另一份共享屏幕时间的 cue,就合成一条同时装着两种文字的 cue:原文在上,译文在下。这就是双语播出需要的文件——一条轨、一个文件、一次加载,而不是两条播放器会让观众随手关掉的轨,或者 DVD 制作工具直接拒收的两份。

配对按时间而不按位置。两份 cue 数相同的文件看着可以逐行对,但原文与译文的 cue 数恰恰最容易不同:译者会把一句长英文拆成两句短中文,或把两个问句并成一句。所以只有时间段重叠的 cue 才配对。完全对不上的 cue 交给第一个选项处理:保留两份文件时,每一条都作为独立 cue 带过来,一个字都不少,代价是产物不再是任何一方的精确时间轴;保留第一份时间轴时,第一份的 cue 原样出来,第二份里对不上的丢弃并计数。

第二个选项决定两种文字怎么共用屏幕:两行是双语字幕的常规播法,第一份在上、第二份在下;一行则用你输入的分隔符连起来——带空格的斜杠、短横、竖线,或者什么都不加(中日文对照的惯例)。两行要求格式允许 cue 内换行,把 cue 存成单行的格式因此被排除在这一页之外,而不是被悄悄压平。

接受的格式是 SRT、WebVTT、ASS、SSA、SBV、SAMI、TTML、JSON 与 CSV,共九种;MicroDVD 不接受,因为它的 cue 是一行帧号;LRC 不接受,因为它不存结束时间,而配对全靠结束时间;纯文本两者都没有。两份格式不同没问题,各自按内容读入,产物写成第一份的格式。两个文件都不上传,在浏览器标签页里读入、合并、写出;两个框都能放多个文件并按顺序配对,一整季可以一次跑完。

示例

两份对得上的文件,合成两行

输入

First file:
1
00:00:01,000 --> 00:00:03,000
Good morning.

2
00:00:05,000 --> 00:00:07,000
How are you?


Second file:
1
00:00:01,000 --> 00:00:03,000
早上好。

2
00:00:05,000 --> 00:00:07,000
你好吗?

输出

1
00:00:01,000 --> 00:00:03,000
Good morning.
早上好。

2
00:00:05,000 --> 00:00:07,000
How are you?
你好吗?

两条 cue 时间完全重叠,各自配成两行,第一份在上。没有丢东西也没有移动,报告会这么说。断号只在产物里出现不来自第一份的 cue 时才会发生,见第三个例子。

第二份里配不上任何一条的 cue

输入

First file:
1
00:00:01,000 --> 00:00:03,000
Good morning.

2
00:00:05,000 --> 00:00:07,000
How are you?


Second file:
1
00:00:01,000 --> 00:00:03,000
早上好。

2
00:00:03,000 --> 00:00:04,500
(敲门声)

输出

1
00:00:01,000 --> 00:00:03,000
Good morning.
早上好。

2
00:00:03,000 --> 00:00:04,500
(敲门声)

3
00:00:05,000 --> 00:00:07,000
How are you?

第二条中文正好在第一条英文结束的瞬间开始,而“接着上一条结束”并不算重叠——那是两条字幕而不是一条。于是它作为独立 cue 留在自己的时间上。因为有了一条不来自第一份的 cue,整个文件从 1 重新编号。

常见问题

两份文件 cue 数量不同时,按什么配对?

按时间段重叠,与编号无关。译者把一句拆成两句时,拆出来的第一条会配上原文,第二条不与任何 cue 重叠,随后按第一个选项作为独立 cue 保留或被丢弃,报告会写清是哪一种、影响几条。

合并会改动原文的时间轴吗?

看第一个选项。保留第一份时间轴时,第一份每条 cue 的起止原样出来、中间不插东西;第二份里对不上的丢弃并计数。保留两份文件时一条不丢,但配对成功的 cue 会从较早的开始延伸到较晚的结束,可能变宽几百毫秒并压到下一条上。

这一页能用来给已有字幕加第二语言吗?

能,只要第二份输入有时间轴——配对规则只有一条:时间区间重叠。第二个框里放一份转成 SRT 的转录稿同样可以合并;纯文本因为没有时间而不能进,给文本凭空造一条时间轴应该由你决定,而不是工具替你决定。

两份文件需要先上传到服务器吗?

不需要,也没有服务器可传。两份文件都在浏览器标签页里读入、在内存里合并、再写回本地;关掉标签页一切消失,过程中没有任何字节发出去。

两份文件格式不同(比如 VTT 配 SRT)能合并吗?输出写成哪种?

能,而且很常见:会议录制的 WebVTT 配译者给的 SRT。每个框按自己内容读入,产物写成第一份文件的格式——所以两个框要分标注。要注意样式:第一份是带样式的 ASS 时,译文并入后沿用它的样式,受影响条数写在报告里。

哪种语言会排在上面?

第一个框里的那份。两行版式由你控制,不自动也不按字母:播出惯例是原文在上,语言学习字幕常把要学的语言放上面。把两个文件对调,上下就互换。

相关工具