跳到主要内容
SubtitleMatrix

CSV 转 SRT

或者粘贴字幕文本

这次转换会改变什么

这个方向不会丢失内容 —— 源格式的每一项特性在目标格式里都有地方可去。

这份清单来自这两种格式的能力矩阵,而不是你加载的这份具体文件。如果具体文件用到了格式允许、但矩阵没有建模的特性,可能会丢得更多。

这一页把一张表变成能直接播的 SRT。它需要三样东西:起始时间、结束时间、正文;这些列靠表头认,不靠位置,所以列顺序不同、表头写成 begin 或 finish 也能直接转。没有表头时,按 start、end、text 的顺序读。

表头匹配是宽松的:start、start time、timecode in、begin、from、in 都认作起始;end、stop、to、out、finish 都认作结束;text、subtitle、content、line、dialogue、transcript 都认作正文;空格、下划线、连字符忽略,大小写不敏感。

单元格里的时间码按表格软件常见的写法读:分秒或时分秒,小数前可以是逗号或点,小数一到三位;.5、.50、.500 都是半秒。没有加引号、被时间码里的逗号拆成两列的行会被拼回去——真实文件就是这样,而不是标准里写的那样。

一行转一条,按行序输出,编号从 1 开始。转换在浏览器里完成,文件不上传;批量拖入会串行处理,最后打包下载。

示例

一份典型的 CSV 文件转成 SRT

输入

start,end,text
00:00:01.000,00:00:03.500,The quick brown fox.
00:00:04.000,00:00:06.250,"Jumps over, the lazy dog."
00:00:07.000,00:00:09.000,"Two lines here.
And a second one."

输出

1
00:00:01,000 --> 00:00:03,500
The quick brown fox.

2
00:00:04,000 --> 00:00:06,250
Jumps over, the lazy dog.

3
00:00:07,000 --> 00:00:09,000
Two lines here.
And a second one.

这一方向不丢东西:左右两栏可以逐行对照。

同一转换遇到一份脏文件

输入

id,start,end,note,text
1,00:00:01,000,00:00:04,000,cue one,"Hello there, friend."
2,00:00:05.000,00:00:07.000,cue two,Second line.
bad,notatime,00:00:09.000,cue three,Unreadable start.
4,00:00:10.000,00:00:09.000,cue four,End before start.
5,00:00:12.000,00:00:14.000,cue five,Unquoted comma in text, right here.

输出

1
00:00:01,000 --> 00:00:04,000
Hello there, friend.

2
00:00:05,000 --> 00:00:07,000
Second line.

3
00:00:10,000 --> 00:00:10,001
End before start.

4
00:00:12,000 --> 00:00:14,000
Unquoted comma in text, right here.

真实文件里常见的损坏:混合换行、散落的空白、留空的字段。可以对照上面那份干净样例,看看解析器能容忍到什么程度。

常见问题

CSV 转 SRT 认哪些表头名字?

start、start time、timecode in、begin、from、in 都算起始;end、stop、to、out、finish 都算结束;text、subtitle、content、line、dialogue、transcript 都算正文。空格、下划线与连字符会被忽略,大小写不敏感。

CSV 没有表头时,CSV 转 SRT 怎么读列?

按顺序取前三列:start、end、text。判断有没有表头看第一格是不是时间码——第一行是真字幕时不会被误认成标签行。

CSV 转 SRT 时,单元格里的时间码可以写成哪些形式?

分秒或时分秒都行,小数前用逗号或点都可以,小数一到三位:.5、.50、.500 都读成半秒。表格软件产生的小数位不统一时,这一条就是它的容错。

CSV 转 SRT 时,时间码里的逗号被拆成两列怎么办?

会自动拼回去。SRT 写法的时间码本来就带逗号,粘进表格又没加引号时会落进两列;两半看起来像同一个时间码的两截时,转换器会把它们合起来再读。

CSV 转 SRT 能直接在表格里从零做一份字幕吗?

可以,而且这正是这一页最常见的用法:三列,一行一条字幕,写完直接转。改文字时表格比字幕文件好编辑,转回来只差一次点击。

相关工具