⭐ 觉得好用?收藏备用,下次直接打开
字幕互转 — SRT / WebVTT / LRC / ASS 两两转换,自动识别 GBK/Big5 修复乱码,整体时间 ± 偏移、一键清理 ASS / HTML 样式标签。所有处理在浏览器本地完成,不上传
💬 拖入 .srt / .vtt / .lrc / .ass 文件,或 点击选择文件
支持任意编码(UTF-8 / GBK / Big5 / UTF-16 / Shift_JIS / EUC-KR…)

字幕格式转换 把 SRT、WebVTT、LRC、ASS 四种主流字幕格式两两互转,自动识别 GBK / Big5 / UTF-16 等历史编码并修复乱码,支持整体时间 ± 偏移和样式标签清理。全程浏览器本地处理,文件不上传任何服务器。

四种格式怎么选

格式扩展何时用
SRT.srt离线播放器、B 站投稿、压制内嵌——兼容性最好的”通用字幕”
WebVTT.vttHTML5 <track> 标签、自建网页播放器、YouTube CC 上传
LRC.lrc音乐 App 歌词、卡点短视频——只有起始时间,没有结束时间
ASS / SSA.ass .ssa字幕组精修轨、动画压制——带样式/位置/特效

转换路径:上传时自动识别源格式(按扩展名 + 头部内容),目标格式从”目标格式”区点选,下方实时预览。

编码自动识别策略

按这个顺序判断:

  1. BOM 命中EF BB BF → UTF-8、FF FE → UTF-16LE、FE FF → UTF-16BE,最可信
  2. UTF-8 严格校验:用 TextDecoder('utf-8', { fatal: true }) 跑一遍,无异常即 UTF-8
  3. 猜测:剩余按 GB18030 / Big5 / Shift_JIS / EUC-KR / Windows-1252 各解一遍,按”CJK 汉字 + 假名 + 韩文音节占比 − 替换符数量 × 5”打分挑最高

猜错了在”源编码”下拉里手动改,预览表会立刻按新编码重算。Windows-1252 是 Latin-1 的超集,作为兜底——一段欧洲语言字幕不知道编码时常用。

时间偏移与样式清理

  • 时间偏移 给整轨字幕统一加 / 减一个秒数,应对”字幕快/慢半拍”。粒度 0.1 秒,左右快捷按钮 ±1 秒。负偏移过大时,开头早于 0 的条目会被截到 0。
  • 样式清理 一键剥掉 <i> <b> <u> <font> 等 HTML 子集和 ASS 的 {\\xxx} override 标签。输出到 SRT / LRC 时建议勾上——老播放器对样式标签处理不一致,去掉最稳。输出到 VTT / ASS 一般保留,VTT 原生支持 HTML 子集。

帧率与变速怎么办

本工具只做整体偏移,不做帧率拉伸。常见的 23.976 ↔ 25 ↔ 29.97 帧率换算需要按比例缩放每条字幕的时间戳(不是平移),逻辑不同,会在后续版本加。临时解法:把字幕导入 Aegisub 用”时间后处理 → 调整帧率”完成,再回本工具补编码 / 格式转换。

隐私与数据

读文件用浏览器 FileReader,编码识别和解码用原生 TextDecoder(GBK / GB18030 / Big5 / Shift_JIS / EUC-KR 都是浏览器内建支持,无需任何外部库),解析与序列化在内存里完成。零网络请求、零 localStorage 持久化——刷新页面草稿即清空。

📍使用场景

  • 下载到的字幕乱码国内站搬运的 .srt 多是 GBK/Big5,播放器显示一串问号——拖进来一键识别编码,输出干净 UTF-8。
  • 字幕慢/快半拍视频压制后帧率换算或剪掉片头,整轨字幕整体偏移几秒,调一下"时间偏移"就追上画面。
  • 网页播放器要 WebVTT自家做的 H5 视频站只认 .vtt 不吃 .srt,转一下连 `WEBVTT` 头都帮你写好。
  • 卡拉 OK / 短视频要 LRC把 SRT 转成 LRC 给音乐 App / 自媒体卡点视频用,自动剥多行合一行、写时间戳前缀。

常见问题

为什么我的字幕在播放器里全是问号或方块?

99% 是编码问题。Windows 中文系统老导出多用 GBK,繁体地区是 Big5,但现代播放器和网页都默认 UTF-8。本工具会先 BOM、再 UTF-8 严格校验,仍失败时按 GB18030 / Big5 / Shift_JIS / EUC-KR 各试一遍,按"CJK 字符占比 - 替换符数量"打分挑最像的。猜错了你也可以在"源编码"下拉手动改,预览表会立刻刷新。

SRT、VTT、LRC、ASS 到底怎么选?

SRT 兼容性最好,绝大多数离线播放器和 B 站投稿都吃。WebVTT 是 HTML5 track 标签的官方格式,做网页播放器选它。LRC 是音乐歌词标准,每行只有起始时间没有结束时间,转出会自然丢失"持续时长"。ASS / SSA 带样式(字体、位置、特效),适合压字幕和动画字幕组的精修轨;转到 SRT/LRC 时所有 {\xxx} 标签会被剥离,只保留纯文本。

时间偏移正负是怎么定义的?

正值 = 字幕整体延后(字幕比画面快时用),负值 = 整体提前(字幕比画面慢时用)。粒度 0.1 秒,按一下两侧的快捷按钮就能 ±1 秒微调。负偏移过大时,开头早于 0 的条目会被截到 0 而不是负数,避免播放器报错。

ASS 转成 SRT 会丢什么?

会丢样式:字体、字号、颜色、描边、阴影、位置、淡入淡出、卡拉 OK 时间标签等所有 {\xxx} override 全部剥掉。保留文本\N / \n 转成换行,\h 转成空格,文本内容完整保留。如果你需要保留视觉样式,目标格式选 ASS(保留 ASS 表头透传);要保留斜体/粗体的简版样式但不要 ASS,可以勾掉"样式清理"——SRT 输出会保留 i / b / font 这些 HTML 子集(VLC、PotPlayer、MPV 都识别)。

LRC 没有结束时间,转 SRT 怎么处理?

下一行的开始时间作为本行结束时间(向前减 1ms 防重叠)。最后一行没有"下一行",默认给 5 秒持续时长。LRC 里仅有时间戳没有歌词的"间奏标记"行会被丢弃。LRC 头部的 [offset:xxx] meta 会换算到所有时间戳上:正值表示字幕提前(从时间戳里减去),与 Foobar / Walkman 等主流播放器的处理一致。

数据会上传吗?文件大小有限制吗?

不上传。读文件用 FileReader,编码用浏览器原生 TextDecoder(UTF-8 / UTF-16 / GBK / GB18030 / Big5 / Shift_JIS / EUC-KR / Windows-1252 全部内建支持),解析、偏移、序列化都在浏览器内存里完成。理论上没有大小硬限制,实测十几 MB 的字幕(约几十万条)也能秒级处理;超过 50MB 建议分段。