视频工具 · 字幕处理

字幕格式化

SRT/VTT/ASS/LRC 互转

✓本地处理 · 不上传 ✓免费 · 无需登录 ✓无次数限制 累计 118 次使用
源 目标
输 入 auto
输 出 SRT
转换结果将在这里呈现 —— 点「示例」试试
就绪 · 粘贴或拖入字幕,自动识别源格式并实时转换
第一节

关于本工具

About

剪辑时发现字幕文件后缀不对,SRT 打不开、ASS 样式全乱、LRC 时间轴错位——格式不兼容比错别字更让人头疼。这个工具把常见字幕格式(SRT、VTT、ASS、LRC)互相转成目标格式,保留时间轴和基本样式。字幕内容只在本地浏览器里处理,不上传任何文件。

使用场景

壹

双语字幕错位修复

译者从网上下载了一部纪录片的中英双语 SRT 字幕,但中文轨道比英文轨道整体慢了 1.5 秒。用播放器逐条调整 800 条时间轴太慢。将 SRT 文件导入本工具,在「时间偏移」栏输入 -1500 毫秒,导出修复后的文件,两条轨道同步,无需逐句修改。

贰

网盘直传 VTT 字幕

字幕组把内嵌字幕的 MKV 封装成 ASS 格式,但用户想上传到阿里云盘在线播放。云盘播放器不认 ASS,只支持 VTT。将 ASS 文件拖入本工具,选择输出 VTT,下载后上传到同目录并命名为同名 .vtt 文件,在线播放时自动挂载字幕,无需重新压制视频。

叁

卡拉 OK 歌词转通用格式

音乐制作人拿到一首歌曲的 LRC 逐行动态歌词,想导入到剪映里做 MV 字幕。剪映只支持 SRT 格式。将 LRC 文件上传本工具,勾选「保留原始时间戳」后导出 SRT,导入剪映后歌词与伴奏对齐,省去手动打 60 个时间点的重复劳动。

肆

外挂字幕嵌入前的格式清洗

视频剪辑师用 Aegisub 制作了 ASS 字幕,包含大量特效标签(\fn微软雅黑\fs28\bord2)。交付前发现甲方要求纯文本 SRT 格式。将 ASS 文件放入本工具,选择「剥离样式」模式导出 SRT,所有特效标签被自动清除,仅保留纯文本和时间轴,避免甲方播放器报错。

伍

多语言字幕合并导出

电影节展映需要一条中英双语硬字幕的 DCP 包。技术员手上有两个独立的 SRT 文件(中文和英文),需要合并成一条左右分栏的 ASS 字幕。将两个 SRT 分别上传本工具,先分别转为 ASS,再用文本编辑器将两条轨道合并为同一 ASS 文件中的不同样式层,输出后导入达芬奇,一次渲染完成。

第二节

使用指南

Getting Started

使用步骤

  1. 1在输入区粘贴或上传 SRT、VTT、ASS 或 LRC 字幕文件,支持纯文本粘贴或文件选择
  2. 2从「目标格式」下拉菜单选择要转换的格式(SRT/VTT/ASS/LRC),选中后预览区立即显示转换结果
  3. 3点击「复制结果」按钮将格式化后的字幕文本复制到剪贴板,或点击「下载文件」保存为对应格式文件

输入输出示例

输入输出说明
SRT 格式字幕: 1 00:00:01,000 --> 00:00:04,000 Hello world. 2 00:00:05,000 --> 00:00:08,000 This is a test.VTT 格式字幕: WEBVTT 00:00:01.000 --> 00:00:04.000 Hello world. 00:00:05.000 --> 00:00:08.000 This is a test.常规:SRT 转 VTT,时间码分隔符从逗号改为点,并添加 WEBVTT 头部,验证基础转换逻辑
ASS 格式字幕: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello world.LRC 格式字幕: [00:01.00]Hello world. [00:04.00]常规:ASS 转 LRC,只提取时间码和文本,丢弃样式和特效信息,验证格式精简能力
空字幕文件(仅含空行)(输出空文件,无任何内容)边界:输入为空文件时,工具应返回空文件而非报错或生成无效头部
SRT 格式字幕,时间码包含毫秒且末尾无空行: 1 00:00:01,500 --> 00:00:02,000 Line one. 2 00:00:03,000 --> 00:00:04,500 Line two.VTT 格式字幕: WEBVTT 00:00:01.500 --> 00:00:02.000 Line one. 00:00:03.000 --> 00:00:04.500 Line two.边界:输入末尾无空行,工具应自动补全格式分隔,不丢失最后一条字幕
LRC 格式字幕,时间码重叠且包含空行: [00:01.00]First line [00:01.00]Second line [00:02.00]Third lineSRT 格式字幕: 1 00:00:01,000 --> 00:00:01,000 First line 2 00:00:01,000 --> 00:00:02,000 Second line 3 00:00:02,000 --> 00:00:02,000 Third line易错:LRC 时间码重叠时,工具应自动分配连续序号,并合理推断结束时间(相同时间码视为同时开始,下一个时间码为结束)
SRT 格式字幕,包含 HTML 标签: 1 00:00:01,000 --> 00:00:04,000 <b>Bold</b> and <i>italic</i> text.VTT 格式字幕: WEBVTT 00:00:01.000 --> 00:00:04.000 <b>Bold</b> and <i>italic</i> text.易错:SRT 和 VTT 都支持部分 HTML 标签,工具应保留标签不转义,避免破坏样式
ASS 格式字幕,包含 \N 换行符: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Line one\NLine twoSRT 格式字幕: 1 00:00:01,000 --> 00:00:04,000 Line one Line two易错:ASS 的 \N 换行符在转 SRT 时应转换为真实换行,而非保留 \N 字面量

常见错误对照

1.SRT 时间轴格式缺逗号或冒号

✗ 错误00:01:23,456 --> 00:01:25,789
✓ 修复00:01:23,456 --> 00:01:25,789

SRT 标准要求时间轴使用逗号分隔毫秒,部分播放器也接受点号,但本工具严格遵循 RFC 标准,逗号缺失会导致解析失败。

2.ASS 事件行缺少 Format 定义

✗ 错误Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,Hello
✓ 修复Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,Hello

ASS 头部必须先用 Format 声明字段顺序,否则工具无法正确解析后续 Dialogue 行的各列数据。

3.LRC 时间标签顺序颠倒

✗ 错误[02:00.00]第二句歌词 [01:00.00]第一句歌词
✓ 修复[01:00.00]第一句歌词 [02:00.00]第二句歌词

LRC 规范要求时间标签必须严格递增,乱序会导致工具在合并或转换时时间轴错乱,部分播放器也会忽略后续内容。

4.VTT 文件缺少 WEBVTT 头部声明

✗ 错误00:00:01.000 --> 00:00:04.000 Hello world
✓ 修复WEBVTT 00:00:01.000 --> 00:00:04.000 Hello world

WebVTT 标准强制要求文件首行必须是 WEBVTT(可含可选 BOM),缺少该声明工具会判定格式无效。

5.ASS 样式名包含中文引号或特殊符号

✗ 错误Style: Default“标题”,Arial,20,&H00FFFFFF,...
✓ 修复Style: Default,Arial,20,&H00FFFFFF,...

ASS 样式名中不能包含双引号、逗号、花括号等特殊字符,否则工具在解析样式行时会截断或报错。

6.SRT 字幕序号后缺少空行分隔

✗ 错误1 00:00:01,000 --> 00:00:04,000 Hello 2 00:00:05,000 --> 00:00:08,000 World
✓ 修复1 00:00:01,000 --> 00:00:04,000 Hello 2 00:00:05,000 --> 00:00:08,000 World

SRT 标准要求每个字幕块之间必须有至少一个空行,连续书写会导致工具将多个块合并为一个。

7.LRC 时间标签使用冒号而非点号分隔毫秒

✗ 错误[01:23:45]
✓ 修复[01:23.45]

LRC 规范使用点号(.)作为分钟与秒、秒与毫秒的分隔符,冒号仅用于分隔分钟和秒。使用冒号会导致工具误判时间格式。

8.ASS 特效代码未闭合花括号

✗ 错误{\b1}Hello {\b0
✓ 修复{\b1}Hello {\b0}

ASS 使用花括号包裹特效代码,左花括号必须对应右花括号,否则工具会认为后续所有文本都处于特效状态。

第三节

工作原理

How It Works

核心公式

时间码格式转换:HH:MM:SS,mmm ↔ HH:MM:SS.mmm ↔ HH:MM:SS:ff (ff = 帧号)

变量说明

  • HH小时,0–23
  • MM分钟,0–59
  • SS秒,0–59
  • mmm毫秒,0–999
  • ff帧号,基于帧率计算

示例

SRT 时间码 00:01:30,500 转 VTT:将逗号替换为小数点 → 00:01:30.500。若转 ASS(帧率 25 fps):500 ms ÷ (1000/25) = 12.5 帧,向下取整得 ff=12,ASS 时间码为 0:01:30.12。

原始字幕文件SRT / VTT / ASS / LRC格式解析识别字幕类型提取时间轴 + 文本校验时间格式格式重组按目标格式规则拼接时间轴 + 文本输出新字幕SRT / VTT / ASS / LRC可下载 / 复制关键说明• 所有处理在浏览器本地完成,不上传服务器• 支持 SRT / VTT / ASS / LRC 四种格式互相转换• 时间轴自动适配目标格式的精度(毫秒 / 帧 / 百分秒)
用户输入 本地处理 输出结果
第五节

常见问题

Q & A
问我有个 srt 文件,想转成 ass 字幕,批量上传行不行?+
答

本工具每次只处理一个文件,不支持批量上传。如果需要批量转换,建议先在本页面逐个转完再手动合并,或者使用支持批量处理的桌面软件如 Subtitle Edit。当前页面没有文件大小硬上限,但超大文件(超过 50MB)可能因浏览器内存限制导致卡顿,建议分段处理。

问转出来的 ass 字幕在播放器里字体和位置不对,是工具的问题吗?+
答

ASS 字幕包含字体、位置等样式信息,但本工具只转换时间轴和文本内容,不保留原始 ass 文件的样式定义。转换后的 ass 文件仅包含基础样式(默认字体、居中),播放器会用自己的默认设置渲染。如需保留样式,请直接使用原始 ass 文件;本工具适合只改格式、不关心样式的场景。

问为什么我的 lrc 歌词转成 srt 后,时间轴对不上歌曲?+
答

LRC 格式只支持分钟和秒(mm:ss.xx),精度为百分之一秒;SRT 支持到毫秒(hh:mm:ss,xxx)。转换时工具会将 LRC 的百分秒补零为毫秒,但若原 LRC 本身时间轴不准(比如歌词提前或滞后),转成 SRT 后问题依然存在。建议先用播放器微调 LRC 时间轴后再转换。

问vtt 和 srt 到底有啥区别?我该转成哪个?+
答

VTT(WebVTT)和 SRT 都是纯文本字幕格式,时间轴结构几乎一样。VTT 额外支持 CSS 样式和定位,常用于 HTML5 视频播放器;SRT 是通用性最广的格式,几乎所有播放器和剪辑软件都支持。如果你的视频要在网页上嵌入,选 VTT;要用于本地播放或剪辑软件,选 SRT 更稳妥。

问上传文件后点转换没反应,浏览器卡住了怎么办?+
答

本工具完全在浏览器本地运行,不依赖服务器。卡顿通常是因为文件太大或浏览器内存不足。先尝试关闭其他标签页释放内存;如果文件超过 10MB,建议用文本编辑器拆分成多个小文件分别转换。另外,请确认浏览器版本较新(Chrome 90+/Firefox 90+),部分旧版浏览器对 WASM 支持不完整。

问转换后字幕里的中文字符变成了乱码,怎么解决?+
答

乱码通常是因为原文件的编码不是 UTF-8。SRT/VTT/ASS 文件常用 UTF-8 或 GBK 编码,但本工具默认按 UTF-8 读取。如果原文件是 GBK 编码(常见于 Windows 系统生成的 srt),转换前先用记事本或 VS Code 打开,另存为 UTF-8 编码格式,再上传转换。后续版本会考虑加入编码自动检测。

问我有个 ass 字幕文件,想转成 lrc 歌词给手机用,但 ass 里有多条同时显示的字幕,能转吗?+
答

ASS 支持多条字幕同时显示(比如对话+注释),但 LRC 每行只能有一个时间戳。转换时工具会按时间顺序合并,只保留第一条字幕文本,其余会被丢弃。建议先手动从 ASS 中提取出需要的对话行,再转换。如果 ASS 里全是对话且没有重叠,转换结果就是正常的。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

↑↓选择 ↵打开 ⌘+↵新窗口 esc关闭