视频字幕怎么导出:SRT、VTT、ASS 三种格式与平台限制
字幕做完了,导出时才发现平台只要 SRT,你手里是 ASS;或者导进剪辑软件全是乱码,时间轴整体偏移两秒。视频字幕导出看着只是「点一下另存为」,真正卡人的是格式选错、编码不对、帧率不匹配这三件事。
这篇按「交给谁 → 选什么格式 → 怎么导出 → 出错怎么修」讲一遍,照着做基本不会返工。
一、先看字幕要交给谁
| 接收方 | 首选格式 | 原因 |
|---|---|---|
| B 站 / YouTube / 视频号 | SRT | 平台通用,上传即识别 |
网页 <video> 播放器 | VTT | Web 标准格式,支持定位与样式 |
| Premiere / Final Cut / DaVinci | SRT 或 XML | SRT 兼容性最好,XML 保留分轨信息 |
| 剪映 / 必剪 | SRT | 导入字幕直接生成文本轨 |
| 带特效的成片字幕 | ASS | 支持字体、颜色、位置、动画 |
| 给客户或同事校对 | 纯文本 / Word | 不带时间码,改起来最方便 |
一句话:给平台用 SRT,给网页用 VTT,做特效才用 ASS。不确定时先导 SRT,几乎所有工具都认。
二、三种格式到底差在哪

- SRT:序号 + 时间码 + 文本,结构最简单,兼容性最好。缺点是没有样式,位置由播放器决定;
- VTT(WebVTT):SRT 的 Web 版,多了样式标记、字幕定位、章节信息,网页播放器首选;
- ASS/SSA:带完整样式表,能做字体、描边、卡拉 OK 效果,适合做「硬字幕」渲染,但很多平台不认。
需要提醒的是:字幕格式不决定画质。字幕是独立文件时叫「软字幕」,观众可开关;烧进画面叫「硬字幕」,改不了、也搜不到。做 SEO 与可访问性,优先软字幕。
三、三条导出路线

- 剪辑软件内导出:剪映「文本 → 导出字幕」、Premiere「文件 → 导出 → 字幕」、DaVinci 的「Timeline → Export → Subtitle」。适合已经有字幕轨的项目;
- 语音转写生成字幕后导出:先把音频转成带时间码的文本,再导出 SRT。适合没有字幕轨、只有录音的视频;
- 在线工具转换:SRT ↔ VTT ↔ ASS 互转。适合格式不兼容时的应急,注意别把未发布的素材传到不明站点。
没有字幕轨的情况,建议先走语音转写再校对,做法见 视频转文字;转写产出的时间码可以直接导出成字幕。
四、导不进去、乱码、偏移:四个高频原因
| 现象 | 原因 | 解决 |
|---|---|---|
| 中文全是乱码 | 编码不是 UTF-8 | 用编辑器另存为 UTF-8(无 BOM) |
| 提示格式错误 | 时间码用了逗号/点混用 | SRT 用 00:00:01,000,VTT 用 00:00:01.000 |
| 字幕整体提前或延后 | 视频帧率与字幕时间基准不一致 | 按秒数统一平移,或按帧率换算后重新导出 |
| 一条字幕被拆成两行乱序 | 文本里有空行,被当成新条目 | 删掉字幕块内部的空行 |
排查顺序建议:先看编码,再看时间码,最后看帧率。这三步能解决九成问题,比反复换工具快得多。
五、音画不同步怎么修
- 确认视频真实帧率(23.976 / 25 / 30 / 60),不要凭感觉选;
- 在剪辑软件里把字幕轨与音频对齐,找一个明显的发音点(如掌声、重音)作为基准;
- 如果整体偏移固定,直接平移全部字幕;如果越到后面偏得越多,是帧率换算问题,需要按比例缩放时间码;
- 修完从头到尾抽三段检查:开头 10 秒、中间、结尾,别只看开头。
六、常见问题
SRT 能直接改成 VTT 吗?
可以,改扩展名不够,还要把时间码里的逗号换成点,并在开头加 WEBVTT 一行。用工具转换更稳妥。
导出的字幕只有文字没有时间码?
说明导出的是纯文本。检查导出选项是否选了「字幕文件」而不是「文本」,或者工具本身不支持时间码。
平台上传字幕后显示「解析失败」?
先确认文件是 UTF-8 编码、时间码格式正确、条目序号连续。三者任一不对都会解析失败。
能不能一条视频带多语言字幕?
可以。分别导出各语言 SRT,在平台后台上传为不同语言轨道;网页端用多个 <track> 标签。字幕文件的使用方法见 SRT 字幕文件怎么用。
小结
视频字幕导出的关键不在工具,而在先确认接收方要什么格式,再保证 UTF-8 编码与时间码规范,最后核对帧率。按这个顺序走,SRT 打天下,VTT 给网页,ASS 留给特效,返工率会低很多。
更多字幕与转写问题,见 字幕制作 栏目。