LRC 转 SSA
或者粘贴字幕文本
选项
当源文件没有结束时间时使用(纯文本、LRC)。输出里的时间轴是在这里生成的,不是转换来的,所以填多少就是多少。
这次转换会改变什么
有 1 项会被丢弃或需要你决定
- 时间
字幕条的结束时间——源文件不记录这些时间,因此输出中的结束时间是生成的,而不是转换来的
这份清单来自这两种格式的能力矩阵,而不是你加载的这份具体文件。如果具体文件用到了格式允许、但矩阵没有建模的特性,可能会丢得更多。
LRC 转 SSA 把每行歌词变成 `[Events]` 里的 `Dialogue:`,时间写成 `0:00:04.13`,多行用 `\N`。SSA 用 `Marked` 字段取代 SRT 的编号。
LRC 没有结束时间,SSA 必须有:终点取下一行的开始,最后一行用页面设定时长补,报告会注明这一条是生成的。这一步记为 timing 有损,因为文件本身从未记录终点。
`[ti:]` 写进 `[Script Info]` 的 Title;`[ar:]`、`[al:]`、`[offset:]` 在 SSA 里没有对应字段,`offset` 读取但不应用。多行同时间戳的歌词会合成一条多行 cue,不会被拆成两条。
输出 UTF-8、LF、无 BOM,按开始时间升序。转换在本机浏览器完成,不上传、不注册;批量任务可以取消并打成 ZIP。
示例
一份典型的 LRC 文件转成 SSA
输入
[ti:Sample Song]
[ar:Some Artist]
[length:00:41.00]
[offset:+250]
[00:12.00]First line of the song.
[00:15.30]Second line.
[00:15.30]Second line, translated.
[00:18.00]
[00:21.50]Final line.输出
[Script Info]
Title: Sample Song
ScriptType: v4.00
[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1
[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:12.00,0:00:15.30,Default,,0,0,0,,First line of the song.
Dialogue: 0,0:00:15.30,0:00:18.00,Default,,0,0,0,,Second line.\NSecond line, translated.
Dialogue: 0,0:00:18.00,0:00:21.50,Default,,0,0,0,,
Dialogue: 0,0:00:21.50,0:00:23.50,Default,,0,0,0,,Final line.
产物丢了结束时间;开始时间与文字逐行一致。
同一转换遇到一份脏文件
输入
[ar:Some Artist]
[0:05.5]Leading zero omitted, one decimal.
[00:07]Second with no centiseconds.
[00:03.00]Out of order.
[00:07.00][00:09.00]Repeated chorus line.
[00:12.00]输出
[Script Info]
ScriptType: v4.00
[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1
[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:03.00,0:00:05.50,Default,,0,0,0,,Out of order.
Dialogue: 0,0:00:05.50,0:00:07.00,Default,,0,0,0,,Leading zero omitted, one decimal.
Dialogue: 0,0:00:07.00,0:00:09.00,Default,,0,0,0,,Second with no centiseconds.\NRepeated chorus line.
Dialogue: 0,0:00:09.00,0:00:12.00,Default,,0,0,0,,Repeated chorus line.
Dialogue: 0,0:00:12.00,0:00:14.00,Default,,0,0,0,,
真实文件常见的损坏:BOM、混合换行、缺前导零的时间戳、重复的副歌行。解析器不抛异常,读不出的部分记进有损说明。
常见问题
LRC 转 SSA 时,结束时间是怎么补出来的?
用下一行的开始当终点;最后一行没有下一行,用页面设定时长补,报告会注明这一条是生成的。
LRC 转 SSA 后,`[ti:]` 标题会写进哪里?
写进 `[Script Info]` 的 Title;`[ar:]` 艺人、`[al:]` 专辑与 `[offset:]` 没有对应字段,全部丢失且不应用。
LRC 转 SSA 的多行歌词会变成两条字幕吗?
不会。同一时间戳的多行合成一条 cue,用 `\N` 连接,仍是同一条字幕。
LRC 的百分秒时间在 SSA 里会舍入吗?
不会。SSA 同样写到百分秒,`[00:04.12]` 原样写成 `0:00:04.12`。
LRC 转 SSA 的 `Marked` 字段表示什么?
它取代 SRT 的编号,标记这条 cue 的输出顺序;转换按时间升序填写。
SSA 转回 LRC 会丢什么?
会丢时间轴、样式、定位、卡拉OK与格式私有内容;LRC 只留开始时间与文字。