跳到主内容

技术科普

SRT、ASS、VTT、LRC 有什么区别?字幕格式与时间轴一次讲清

MX幕析图像 2026.10.26 11 分钟阅读

要点摘要

  • 软字幕是独立的文本文件,常见的四种分工明确:SRT 求通用、ASS 管样式与特效、VTT 给网页播放器、LRC 配音乐歌词
  • 互转最容易翻车的是时间戳写法:SRT 的毫秒用逗号分隔,VTT 用小数点,ASS 只精确到百分秒
  • 字幕整体比画面早或晚几秒,用整体偏移一次改完;逐条手改几十上百条是最费力的做法
  • 幕析图像专业版把这三件事做成了独立工具页:格式转换(SRT / ASS / VTT / LRC / TXT)、时间轴编辑、字幕整理

把字幕从视频里提取出来之后,下一个问题往往跟着来:我该存成什么格式?导成 TXT 就能贴进笔记,可要交给剪辑软件、放进播放器、传到视频网站,就得是带时间轴的字幕文件。而字幕文件又不止一种——SRT、ASS、VTT、LRC 摆在面前,选错或者随手互转,轻则字幕对不上口型,重则播放器根本不认。

这篇把这四种格式各自长什么样、分别给谁用、互相转换时会踩什么坑讲清楚,再顺带说一下更实用的一件事:字幕整体偏了怎么批量修正。文中的操作都以幕析图像专业版为准,它是三个版本里唯一把字幕后续处理做成独立工具页的版本。

先分清:你要的是"文字"还是"字幕文件"

两者差别只有一样东西——时间轴。

  • 纯文字(TXT):只有一行行台词,没有任何时间信息。适合做笔记、改稿、翻译对照、丢给 AI 继续加工。
  • 字幕文件(SRT / ASS / VTT / LRC):每句台词都挂着"什么时候出现、什么时候消失"。播放器或剪辑软件据此决定字幕何时显示。

所以选择其实很简单:只读内容就导 TXT,要交给能播的工具就导字幕文件。顺带提醒一句,硬字幕(烧进画面的字幕)和软字幕(独立字幕文件)是两回事,提取方式完全不同,想细看可以读《硬字幕 vs 软字幕:OCR如何识别内嵌字幕》。

四种字幕文件长什么样

它们本质都是纯文本,用记事本就能打开,区别在于"怎么表达时间"和"能携带多少额外信息"。

SRT:最通用,也是默认答案

结构最朴素,一条字幕固定四部分,条目之间用空行分隔:

1
00:00:01,500 --> 00:00:04,000
第一句台词文本

  • 序号:从 1 开始逐条递增。有些工具的导出结果不带序号行也能被识别,但既然要给别的软件用,老老实实写上最保险。
  • 时间戳:格式是 时:分:秒,毫秒,时占两位,毫秒占三位,秒和毫秒之间用逗号。这是 SRT 最经典的兼容性问题来源——把逗号写成小数点,部分播放器就直接判它无效。
  • 文本:可以换行,多数播放器默认最多两到三行。

还有个细节:SRT 没有"样式"这件事,字号、颜色、位置全部由播放器决定。想控制外观,那是 ASS 的活。

ASS / SSA:字幕的"样式表"

ASS(Advanced SubStation Alpha)是动漫字幕组的主力格式,因为它把样式写进了文件:字体、字号、颜色、边框、阴影、出现与消失的动画效果,甚至卡拉 OK 逐字点亮。

结构上分三段:[Script Info] 存元信息,[V4+ Styles] 定义若干套命名样式,[Events] 才是实际的字幕行。一条 Dialogue 大致是这样:

Dialogue: 0,0:00:01.50,0:00:04.00,Default,,0,0,0,,第一句台词

看时间字段就能发现两个和 SRT 不同的地方:小时只写一位数,秒后面是两位(百分秒,即 1/100 秒)而不是三位毫秒。另外文本里能出现 \N(强制换行)和 {...}(内联样式标签)这类标记,SRT 里没有对应的地方放它们。

VTT:网页播放器的那一个

WebVTT 是 HTML5 <track> 的标准字幕格式,视频网站、在线课程平台基本都用它。和 SRT 长得像,但有四处不同:第一行必须写 WEBVTT;时间戳的秒与毫秒之间用小数点;序号行可以省略;还可以插 NOTE 注释和 :: 样式说明。

换句话说,VTT 是"能带一点元信息的 SRT"。要从字幕里彻底清出干净文本时,WEBVTT 头与 NOTE 行都属于要丢掉的东西。

LRC:歌词专用,一行一个时间标签

LRC 是给音乐配歌词的,格式最轻:[mm:ss.xx]歌词文本,一行一个时间标签,同一行文本前也可以叠多个时间标签(副歌重复时不用把歌词抄两遍)。它记录的是"这一句从什么时候开始",通常不写结束时间——下一句出现即视为上一句结束。所以严格说,LRC 不适合当视频字幕用。

各格式对比与选择

格式 时间精度 能带样式吗 典型用途
TXT 无时间轴 不能 笔记、改稿、翻译对照、喂给 AI
SRT 毫秒(逗号分隔) 不能 剪辑软件导入、本地播放器、通用交换
ASS 百分秒(点号分隔) 能,字体颜色定位动画都行 字幕组成品、动漫与特效字幕
VTT 毫秒(点号分隔) 有限(注释与样式说明) 网页播放器、在线课程、视频网站
LRC 百分秒,且只有起始 不能 音乐歌词同步显示

拿不准就按这个顺序想:要进剪辑软件或只给本地播放 → SRT;要在网页里播 → VTT;要做特效或已经有字幕组成品 → 保持 ASS;是歌词 → LRC。

格式互转:三个真会踩的坑

幕析图像专业版的"格式转换"页支持 SRT / ASS / VTT / LRC / TXT 五种目标格式,加载字幕时会自动判断源文件属于哪一种。工具好用,但有三个坑值得提前知道。

坑一:从纯文本转 SRT,时间是"造"出来的

TXT 里没有时间信息,任何工具都无法凭空还原真实说话时刻。幕析图像的转换在这种情况下按每条固定 3 秒从 0 开始往下铺——它能给你一个结构正确的 SRT 骨架,但那不是你的真实时间轴。如果你的素材本来就是从视频里识别出来的,请直接从识别结果导出 SRT,那份时间轴来自抽帧时刻,比事后铺格子准得多。

坑二:ASS 转 SRT,样式一定丢

SRT 没有承载样式的字段,所以 ASS 里的字体、颜色、定位、动画在转成 SRT 后全部不存在;文本中的 \N 换行与 {...} 内联标签也不被 SRT 认识。反过来 SRT 转 ASS 则是把朴素字幕塞进一个默认样式里,外观由 ASS 头部那套 Style 决定。

如果你的目的只是"把 ASS 里的台词文字拿出来",更合适的做法是用"字幕整理"里的提取纯文本模式:它会丢掉时间戳、序号、WEBVTT 头和 NOTE 注释,并把 ASS 的 \N 与 {...} 标签剥掉,只留干净的文本。

坑三:改了文本还是改了时间,要分清

"字幕整理"页提供十种模式:简体转繁体、繁体转简体、全角转半角、半角转全角、去空行、去重复行、提取纯文本、合并短行、添加序号、去除序号,另外有一个"保留时间轴"开关。要注意两者的关系:

  • 简繁、全半角这类只动字符的模式,可以勾选保留时间轴,转完还是带时间的字幕文件。
  • 去空行、去重复行、合并短行、增删序号这类改动条目结构的模式,本来就会重排字幕,和"保留时间轴"是互斥的。
  • 两个容易误解的细节:去重复行只清理相邻的重复句,不是全片范围内把所有相同台词删掉(同一句话在片头片尾各说一次是合理保留的);合并短行有字数门槛,只有很短的行才会被并到一起,长句不会被乱合。

字幕整体偏了几秒,怎么一次改完

这是提取字幕后最常见的问题:文件能正常打开、内容也对,就是字幕和声音对不上。先判断是哪种偏:

现象 原因 处理
从头偏到尾,偏移量差不多 识别间隔偏大、片头有黑场或广告、抽帧起点与音轨不齐 整体偏移一次解决
前面准,越到后面偏得越多 源视频帧率与识别时的时间换算不一致 回到提取环节,用更合适的间隔重跑;或在剪辑软件里对轨
只有中间一段偏 那段有转场、插播或字幕样式突变 逐条微调该段

专业版的"时间轴编辑"页就是为第一种情况准备的。流程是:加载字幕 → 填整体偏移秒数 → 抽查首尾几条 → 需要时逐条微调 → 导出 SRT / ASS / VTT。界面是一张表格,每行显示序号、开始时间、结束时间、时长(自动算出)和字幕内容,可以直接改起止时间,也能添加行、插入行、删除行,还有搜索框按文本、时间或序号定位。

几个实测过的小行为值得知道:

  • 偏移量正数往后推、负数往前推,单位是秒,可以填小数。
  • 往前推不会出现负时间:如果某条字幕的起点被推到 0 之前,程序会把起点按 0 处理并保持这条字幕的时长,不会写出非法时间戳。
  • 新添加或插入的行默认往后让 3 秒,序号会自动重排,不用手工补号。
  • 这一页没有"倍速缩放"这类整体拉伸功能。全片越跑越偏属于源问题,靠逐段偏移硬掰不如回到识别环节重跑一次。

导出的 SRT 能进剪映、Premiere 吗

SRT 是通用交换格式,剪映、Premiere、DaVinci Resolve 等剪辑软件都支持导入字幕文件;导入后能不能自动贴到每条视频轨上,是对方软件的行为,不是字幕文件本身决定的。你要确保的只是导出的是一个结构规范、时间戳合法的 SRT。

幕析图像专业版导出的 SRT 满足这几条:序号从 1 递增、时间戳写成 00:00:01,500 --> 00:00:04,000(逗号分隔毫秒)、条目之间空行分隔、文件按 UTF-8(带 BOM)写出——带 BOM 是有意为之,为的是让 PotPlayer 一类播放器打开中文不出现乱码。读取别人给的字幕时则宽容得多,UTF-8、UTF-16、GBK 编码都能自适应。

幕析 AI 版在时间轴收口上做得更细,这是它作为"识别 + 加工"定位的一部分:一次拖入多个视频时每个视频各生成一份独立的 SRT,各自从零开始计时;单条字幕最短显示 1 秒、最长不超过 30 秒,并且保证相邻两条的时间区间不重叠,最后一条会按抽帧节奏多挂 1~5 秒再结束。这三条约束的意义正在于避免导进剪辑软件后出现"零时长字幕""两条重叠导致报错"这类脏数据。

需要说明版本差别:能导出 SRT 的是专业版与幕析 AI 版,标准版导出 TXT 文本。三版都能导出纯文字,差别就在有没有时间轴。

三个在售版本,分别能做到哪一步

能力 专业版 标准版 幕析 AI 版
导出 TXT 纯文本 支持 支持 支持
导出带时间轴的 SRT 支持 不支持 支持,每视频各一份
字幕格式互转(SRT / ASS / VTT / LRC / TXT) 独立工具页 不支持 不支持
时间轴编辑(整体偏移、逐条增删改) 独立工具页 不支持 不支持
字幕整理(简繁、全半角、去空行、合并短行等) 十种模式 提供简繁转换 用 AI 校对代替
识别结果继续交给 AI 校对 / 翻译 / 总结 不提供 不提供 支持,纯识别不计次

一句话:字幕文件层面的活归专业版,识别完还要把文字加工成稿的活归幕析 AI 版,只想把台词快速存成文字,标准版就够。两个会员口径也别搞混:专业版与幕析 AI 版会员同档通用,标准版是独立授权。想按你的用途挑版本,看《专业版、标准版与幕析 AI 版怎么选?附三版功能对比表》。

常见问题

为什么我打开字幕文件是乱码?

九成是编码问题。字幕文件本质是文本,中文一旦用错了读取编码就会花屏。幕析图像专业版写出的 SRT 是 UTF-8 带 BOM,主流播放器与剪辑软件按 UTF-8 选就行;如果是别人给的旧文件,先试试 GBK。

字幕文件放进视频同目录就能自动加载吗?

多数本地播放器确实会找"同目录 + 同文件名"的字幕文件,例如 片名.mp4 配 片名.srt。但这是播放器的行为,各软件规则不完全一样;而且幕析图像导出时不会替你决定存放位置——保存对话框落在哪里由你选,建议导出后手动改成与视频同名的字幕文件。

识别出来的字幕总是慢半句,怎么办?

先把识别间隔调小一档重跑,间隔决定了对字幕变化的响应粒度;如果重跑后仍是整体偏移固定的几秒,那就属于偏移问题,用时间轴编辑页整体校正更省事。具体怎么定间隔、怎么进对语言功能页,见《字幕识别不准、重复、出现乱码?按这个顺序排查》。

小结

字幕格式的取舍其实只有一句话:TXT 用来读,SRT 用来给通用软件,ASS 用来带样式,VTT 用来上网页,LRC 用来配歌词。互转前记住两件事——时间戳的逗号与点号不是一回事,样式在降级格式时会丢。至于对不上口型,先判断是整体偏还是越到后面越偏,前者用整体偏移几秒钟搞定,后者回到识别环节重跑。至于每条字幕的出现时刻是怎么定下来的,见《一帧画面变成一行字,中间要过十道工序》。

如果你手里正好有一份对不齐的字幕,不如下载专业版试一遍时间轴编辑 ↓

下载幕析图像,字幕格式与时间轴自己掌控

识别、格式转换、时间轴编辑、字幕整理都在本地完成,视频文件不上传。

立即下载