SRT 转 LRC
或者粘贴字幕文本
这次转换会改变什么
有 2 项会被丢弃或需要你决定
- 时间
字幕条的结束时间(输出格式只记录字幕条何时开始)
- 精度
时间精度——输出的时间刻度更粗,因此每个时间戳都会四舍五入到最接近的 10 毫秒
这份清单来自这两种格式的能力矩阵,而不是你加载的这份具体文件。如果具体文件用到了格式允许、但矩阵没有建模的特性,可能会丢得更多。
这一页把 SRT 字幕转成 LRC 歌词。目标不是视频字幕,而是歌词播放器:它只需要知道每一行什么时候开始。
时间写成 [mm:ss.xx],精确到 10 毫秒。SRT 的 00:00:04,126 会四舍五入成 [00:04.13];每条 cue 最多移动 5 毫秒,不会拉伸也不会重排。结束时间被丢弃——歌词播放器让一行保持到下一行开始,终点是多余的。标题若存在会写成 [ti:]。
反过来,这个方向会丢时间信息的一截:毫秒精度降为 10 毫秒级,且结束时间不再存在。一条两行字幕输出为两条时间戳相同的歌词行,表示它们属于一起。顺序按起始时间排好。
批量转换同样可用:串行、可取消、ZIP 下载;文件不上传,全部在浏览器里完成。输出统一为 UTF-8、Unix 换行、无 BOM;源文件是 UTF-16 或 Windows 单字节编码时会在读入时解码并在结果面板说明。文件名保留,只改扩展名。
示例
一份典型的 SRT 文件转成 LRC
输入
1
00:00:01,000 --> 00:00:03,500
Hello there.
2
00:00:03,500 --> 00:00:06,000
<i>Whispering</i> now.
And a second line.
3
00:00:06,000 --> 00:00:09,250
<b>Bold</b> statement.
输出
[00:01.00]Hello there.
[00:03.50]Whispering now.
[00:03.50]And a second line.
[00:06.00]Bold statement.
这份产物丢了结束时间与毫秒精度;起始时间按 10 毫秒取整,文字逐行保留。
同一转换遇到一份脏文件
输入
1
0:00:01,00 --> 0:00:03,500
<B>Bold</B> and <I>italic</I>.
2
00:00:03,500 --> 00:00:06,000
3
00:00:08,000 --> 00:00:09,000
Last one.
输出
[00:01.00]Bold and italic.
[00:03.50]
[00:08.00]Last one.
坏时间码与空条目不会被当成歌词;能读的条目照常写出,读不了的记进有损说明。
常见问题
SRT 转 LRC 后结束时间为什么没了?
LRC 只记录一行何时开始;歌词播放器让一行保持到下一行开始,所以没有结束时间这个字段,转换时直接丢弃。
SRT 的 00:00:04,126 转成 LRC 是多少?
[00:04.13]。LRC 只到百分秒,时间四舍五入到最近的 10 毫秒,最多移动 5 毫秒。
SRT 转 LRC 会让整条字幕偏移吗?
不会整体平移。每条时间戳独立四舍五入,最大偏差 5 毫秒,顺序不变。
SRT 转 LRC 后一条两行字幕怎么排?
两条时间戳相同的歌词行,紧挨在一起;这是 LRC 表示它们属于同一条字幕的方式。
SRT 转 LRC 的精度损失有多大?
从毫秒降到 10 毫秒级,单条最多差 5 毫秒。要与另一份文件逐帧对齐时,这是唯一不再精确的地方。
SRT 转 LRC 后时间顺序会乱吗?
不会。输出按起始时间升序,即使原 SRT 文件里的条目是乱序的。
LRC 转回 SRT 会怎样?
结束时间要补出来:LRC 没有终点,写回 SRT 时只能按规则补默认时长,那一步的损失属于反方向。