UltKit

字幕格式转换

把字幕文件转成播放器、剪辑软件或上传表单要求的格式。转换器可读取SRT、VTT、ASS、SBV、TTML等十几种字幕类型,按目标格式的语法重写时间码,并可在转换时同步时间轴、清理文本或去除样式。

字幕格式转换器

或将SRT, VTT, ASS … 文件拖放到此处 ·

单个文件最大 95 MB· 最多 20 个文件· 30 分钟后删除

输出

文件在我们的服务器上处理,并在 30 分钟后删除。

使用方法

  1. 1

    上传字幕文件

    最多可添加 20 个文件,每个不超过 95 MB,支持 SRT、VTT、ASS、SSA、SBV、SUB、TTML、DFXP、XML、SMI、LRC 或 TXT。每行一句字幕的纯文本稿也可以。

  2. 2

    选择输出格式并调整时间轴

    在转换为中选择格式,默认已选 SRT。如果字幕偏早、偏晚或越来越对不上,请打开高级设置,使用平移时间轴或两个帧率字段。

  3. 3

    转换并保存

    点击转换为 SRT(或你选择的其他格式),然后逐个下载文件或下载 ZIP。输出始终为 UTF-8,所有上传的文件会在 30 分钟后删除。

答案

字幕格式转换会改变什么?

文字内容不变。转换器会重写文件头、时间戳语法和样式标记,让其他程序能读取字幕,还可以一次平移所有时间。

SRT、VTT、ASS等字幕文件格式

  • .srt
  • .vtt
  • .ass
  • .ssa
  • .sbv
  • .ttml
  • .dfxp
  • .sub
  • .smi
  • .lrc
  • .xml
  • .txt

SRT 得名于 SubRip,这是一款约在 2000 年用于提取 DVD 字幕的 Windows 程序。它是带编号的字幕条列表,每条有开始和结束时间以及一到两行文字,因此几乎所有播放器、编辑器和流媒体上传表单都能读取。WebVTT 由 SRT 发展而来,面向网页:由 W3C 制定,以 WEBVTT 一词开头,可用 CSS 定位或设置字幕样式。TTML 是 W3C 的 XML 字幕格式,2010 年成为推荐标准;DFXP 是它早期的名称,流媒体服务使用它的各种配置文件。

SubStation Alpha(SSA)及其后继者 Advanced SubStation Alpha(ASS)源自字幕组。ASS 文件有一张样式表,包含字体、颜色、描边和边距,每一行还可以覆盖这些设置,所以标牌和歌曲可以出现在屏幕任意位置。常用的 ASS 编辑器 Aegisub 默认保存这种格式。SBV 是 YouTube 的简单导出格式;SMI 是微软的 SAMI,LRC 保存带行时间的歌词,TXT 则是纯文本。

同一条从 1 分 23.456 秒开始的字幕,在各输出格式中的写法
格式时间戳文件头样式
SRT`00:01:23,456 --> 00:01:25,789`无,字幕条带编号<i>、<b>、<u> 和 <font> 标签
WebVTT`00:01:23.456 --> 00:01:25.789`第一行为 `WEBVTT`字幕设置和 CSS 类
ASS / SSA`0:01:23.45,0:01:25.78`[Script Info] 和 [V4+ Styles]完整样式表和逐行覆盖
SBV`0:01:23.456,0:01:25.789`无无
TTML`begin="00:01:23.456"`带命名空间的 XML 文档XML 中的样式属性
TXT勾选**包含时间戳**时为 `[00:01:23]`,否则无无无

平移字幕时间轴与转换帧率

4.3%25 fps 的 PAL 版本比 23.976 fps 的原版播放得快多少

一部 120 分钟的电影会因此相差近 5 分钟,所以为某一版本制作的字幕放到另一版本上会逐渐错位。

平移时间轴会把每条字幕移动相同的时间,范围为 −3,600 到 +3,600 秒,步长为 1 毫秒。字幕比语音出现得早时填正数,字幕滞后时填负数,例如 −1.5。当开头和结尾的偏差相同时,用它就能修正,这通常是片头不同或裁掉了片商标志造成的。

帧率这一对字段处理另一种情况。在原始帧率中选择字幕制作时对应的帧率,在目标帧率中选择你视频的帧率,可选 23.976、24、25、29.97 和 30 fps。随后每个时间戳都会按比例缩放,同一部电影的欧洲 PAL 版和北美 NTSC 版就是这样得到匹配字幕的。如果不确定方向,可以对比影片接近结尾的一句:如果出现得太晚,说明字幕帧率比视频低。

其余字段针对文本。输入编码可正确读取旧版文件;删除格式标签会去掉 <i>、<b>、<font> 以及 {\an8} 一类的代码。输出 TXT 时,包含时间戳会在每行前添加时间,将多行合并为段落会把断开的行合并成通顺的句子,这是 SRT转TXT 生成文字稿时用的设置。输出 ASS 或 SSA 时,字体(默认 Arial)和字号(48,以 1080 像素高的视频为基准)决定默认样式。

ASS转SRT会丢失样式,且无法恢复

把 ASS 转为 SRT、VTT 或 TXT 会保留文字和时间,但会丢掉位置、颜色、卡拉OK计时和绘制的标牌。如果以后可能重新设置字幕样式,请保留原始 ASS 文件;用 SRT转ASS 转回去只会应用一种默认样式。

字幕格式转换常见错误及解决方法

  • 加载文件后播放器不显示字幕。

    让字幕文件名与视频文件名完全相同,只是扩展名不同,例如 movie.mp4 和 movie.srt,并确认扩展名与格式一致;改名为 .srt 的 VTT 文件,时间戳中仍然是句点。

  • 流媒体上传后,所有字幕都早了约一秒。

    将平移时间轴设为正数,例如 1,然后重新转换。请以第一句台词来测量偏差,不要用音乐提示。

  • TXT 文字稿丢失了字幕的分行结构。

    开启了将多行合并为段落,它会把各行合并成连续的句子。关闭它可保持每行一条字幕,或开启包含时间戳来标出每条字幕的开始位置。

  • TXT 转换后只生成了一条巨大的字幕。

    文字稿只有一个段落。请让每条字幕单独占一行,最好不超过约 42 个字符,然后设置每行秒数。

字幕格式转换常见问题

YouTube支持哪种字幕格式?

YouTube Studio 支持 SRT、WebVTT、SBV、TTML 以及多种广播格式,所以为 YouTube 本身通常无需转换。SBV 是你在 YouTube 上编辑字幕后下载时可选的格式之一;若要导入视频编辑软件,请先将其转换为 SRT。

HTML5视频字幕轨道需要什么格式?

WebVTT。浏览器中的 <track> 元素只能读取 VTT 文件,因此网站上 MP4 旁边的 SRT 会被忽略。SRT转VTT 会添加 WEBVTT 文件头,并把小数点逗号改为句点。

字幕格式转换后颜色、字体和位置还能保留吗?

只有 ASS 与 SSA 之间可以保留。SRT、VTT、SBV 和 TXT 无法保存逐行字体、卡拉OK特效或屏幕位置,所以动漫字幕组的字幕转成 SRT 后会保留文字和时间,但样式会丢失。基本的斜体和粗体标签会带入 SRT 和 VTT,除非你勾选删除格式标签。

字幕越来越不同步怎么修正?

固定的延迟用平移时间轴修正;延迟越来越大,说明字幕是为帧率不同的版本制作的。把原始帧率设为字幕对应的帧率,把目标帧率设为你视频的帧率,最常见的是 23.976 转 25,或反过来。

能把文字稿转换成带时间轴的字幕吗?

可以。上传每行一句字幕的 TXT 并转换为 SRT,每一行会依次获得每行秒数中设定的时长。时间不会与语音完全吻合,请用 Subtitle Edit 或 Aegisub 等编辑器再微调。可以从 TXT转SRT 开始。

为什么带重音的字母会变成问号或奇怪符号?

文件是用旧代码页保存的,例如俄语的 Windows-1251 或阿拉伯语的 Windows-1256,却被当作 UTF-8 读取。请在输入编码中选择正确的编码后重新转换;输出为 UTF-8,现代播放器可正常显示。

能转换DVD或蓝光的图形字幕吗?

不能按文本处理。VobSub(.sub 加 .idx)和蓝光 PGS 轨道把每条字幕存为图片,需要先做光学字符识别。本工具读取的 .sub 文件是基于文本的 MicroDVD 文件。

全部字幕格式转换工具

选择对方要求的具体目标即可。下面每个页面都是同一个工具,只是默认设置不同。