跳到主要内容
SubtitleMatrix

SRT 转 LRC

格式转换SubRip(SRT)
或者粘贴字幕文本

这次转换会改变什么

有 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 时只能按规则补默认时长,那一步的损失属于反方向。

相关工具