LRC 转 VTT
或者粘贴字幕文本
选项
当源文件没有结束时间时使用(纯文本、LRC)。输出里的时间轴是在这里生成的,不是转换来的,所以填多少就是多少。
这次转换会改变什么
有 1 项会被丢弃或需要你决定
- 时间
字幕条的结束时间——源文件不记录这些时间,因此输出中的结束时间是生成的,而不是转换来的
这份清单来自这两种格式的能力矩阵,而不是你加载的这份具体文件。如果具体文件用到了格式允许、但矩阵没有建模的特性,可能会丢得更多。
LRC 转 VTT 得到 WebVTT:`WEBVTT` 头,每行歌词一条 cue,时间写成 `00:00:12.000 --> 00:00:15.300`。VTT 可以直接放进网页的 `<track>` 或现代播放器。
终点取下一行的开始,最后一行用页面设定时长补,并在报告中注明。多个同时间戳的歌词行合成一条多行 cue,避免两条字幕在同一时刻争抢。
有损说明记 timing:终点不在 LRC 文件里。`[ti:]`、`[ar:]`、`[al:]`、`[offset:]` 不进入 VTT,`offset` 读取但不应用;VTT 的样式能力在 LRC 里没有来源,所以这一层无额外损失。
输出 UTF-8、LF、无 BOM,cue 按开始时间排序。转换全程在浏览器里,不上传、不注册;批量可取消并打成 ZIP。
示例
一份典型的 LRC 文件转成 VTT
输入
[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.输出
WEBVTT
00:00:12.000 --> 00:00:15.300
First line of the song.
00:00:15.300 --> 00:00:18.000
Second line.
Second line, translated.
00:00:18.000 --> 00:00:21.500
00:00:21.500 --> 00:00:23.500
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]输出
WEBVTT
00:00:03.000 --> 00:00:05.500
Out of order.
00:00:05.500 --> 00:00:07.000
Leading zero omitted, one decimal.
00:00:07.000 --> 00:00:09.000
Second with no centiseconds.
Repeated chorus line.
00:00:09.000 --> 00:00:12.000
Repeated chorus line.
00:00:12.000 --> 00:00:14.000
真实文件常见的损坏:BOM、混合换行、缺前导零的时间戳、重复的副歌行。解析器不抛异常,读不出的部分记进有损说明。
常见问题
LRC 转 VTT 时,最后一行歌词的终点怎么定?
用页面设定时长补,默认两秒;报告会注明这条 cue 的终点是生成的。
LRC 转 VTT 后,`WEBVTT` 头后面直接是歌词吗?
先是 `WEBVTT` 头,空一行,再是第一条 cue;每条 cue 是时间行加正文。
LRC 的 `[offset:]` 标签在 VTT 里生效吗?
不生效。偏移被读取但不加到时间轴,产物时间与文件字面一致。
LRC 转 VTT 时,双语歌词会拆成两条 cue 吗?
不会。同一时间戳的多行进入同一条 cue,播放器会一起显示。
LRC 转 VTT 的毫秒精度会损失吗?
不会。LRC 的百分秒写成毫秒时间,`[00:12.00]` 变成 `00:00:12.000`。
VTT 转回 LRC 会丢什么?
会丢结束时间、样式、精度与格式私有内容;LRC 只保留开始时间与文字。