字幕格式转换 把 SRT、WebVTT、LRC、ASS 四种主流字幕格式两两互转,自动识别 GBK / Big5 / UTF-16 等历史编码并修复乱码,支持整体时间 ± 偏移和样式标签清理。全程浏览器本地处理,文件不上传任何服务器。
| 格式 | 扩展 | 何时用 |
|---|---|---|
| SRT | .srt | 离线播放器、B 站投稿、压制内嵌——兼容性最好的”通用字幕” |
| WebVTT | .vtt | HTML5 <track> 标签、自建网页播放器、YouTube CC 上传 |
| LRC | .lrc | 音乐 App 歌词、卡点短视频——只有起始时间,没有结束时间 |
| ASS / SSA | .ass .ssa | 字幕组精修轨、动画压制——带样式/位置/特效 |
转换路径:上传时自动识别源格式(按扩展名 + 头部内容),目标格式从”目标格式”区点选,下方实时预览。
按这个顺序判断:
EF BB BF → UTF-8、FF FE → UTF-16LE、FE FF → UTF-16BE,最可信TextDecoder('utf-8', { fatal: true }) 跑一遍,无异常即 UTF-8猜错了在”源编码”下拉里手动改,预览表会立刻按新编码重算。Windows-1252 是 Latin-1 的超集,作为兜底——一段欧洲语言字幕不知道编码时常用。
<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 持久化——刷新页面草稿即清空。
99% 是编码问题。Windows 中文系统老导出多用 GBK,繁体地区是 Big5,但现代播放器和网页都默认 UTF-8。本工具会先 BOM、再 UTF-8 严格校验,仍失败时按 GB18030 / Big5 / Shift_JIS / EUC-KR 各试一遍,按"CJK 字符占比 - 替换符数量"打分挑最像的。猜错了你也可以在"源编码"下拉手动改,预览表会立刻刷新。
SRT 兼容性最好,绝大多数离线播放器和 B 站投稿都吃。WebVTT 是 HTML5 track 标签的官方格式,做网页播放器选它。LRC 是音乐歌词标准,每行只有起始时间没有结束时间,转出会自然丢失"持续时长"。ASS / SSA 带样式(字体、位置、特效),适合压字幕和动画字幕组的精修轨;转到 SRT/LRC 时所有 {\xxx} 标签会被剥离,只保留纯文本。
正值 = 字幕整体延后(字幕比画面快时用),负值 = 整体提前(字幕比画面慢时用)。粒度 0.1 秒,按一下两侧的快捷按钮就能 ±1 秒微调。负偏移过大时,开头早于 0 的条目会被截到 0 而不是负数,避免播放器报错。
会丢样式:字体、字号、颜色、描边、阴影、位置、淡入淡出、卡拉 OK 时间标签等所有 {\xxx} override 全部剥掉。保留文本:\N / \n 转成换行,\h 转成空格,文本内容完整保留。如果你需要保留视觉样式,目标格式选 ASS(保留 ASS 表头透传);要保留斜体/粗体的简版样式但不要 ASS,可以勾掉"样式清理"——SRT 输出会保留 i / b / font 这些 HTML 子集(VLC、PotPlayer、MPV 都识别)。
用下一行的开始时间作为本行结束时间(向前减 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 建议分段。