SRT字幕文件怎么翻译?不丢时间轴与换行格式指南

意扣

导读

直接翻译SRT字幕文件并保留时间轴、序号与分行。对比工具限制、VTT格式差异、字数与语速控制,以及YouTube字幕上传步骤。

关键词:翻译 srt 文件; srt 字幕翻译; vtt 字幕翻译; 双语字幕制作; youtube 字幕上传

直接把 .srt 文件里的文本全选复制到普通网页翻译框,几乎必然会破坏字幕文件。通用翻译引擎无法区分对白和控制字符,经常会把时间轴箭头(-->)误翻或吃掉、抹除毫秒数字、打乱递增序号,或者把两行对白强行合并成一个自然段,导致保存后的文件在播放器或剪辑软件中彻底无法加载。

正确翻译 SRT 文件的核心原则,是使用能够识别字幕数据结构的专用翻译方案:只提取并翻译对白文本,原样保留以逗号分隔毫秒的时间轴(00:01:02,500 --> 00:01:04,000)与数字序号,并以标准的 UTF-8 编码导出。

为什么常用翻译工具搞不定 SRT?

很多创作者在初次处理外语字幕时,习惯先找手头常用的翻译工具,但往往会遇到以下客观限制:

  • 谷歌翻译(Google Translate)不支持字幕文件:谷歌翻译网页版的“文档翻译”仅支持 .docx、.pdf、.pptx 和 .xlsx 四种格式(单文件最大 10 MB,PDF 不超过 300 页),官方不支持 .srt 和 .vtt。同时,网页端现已取消纯 .txt 文件的上传入口。如果把字幕文本直接贴入文本框,长文本容易因字数限制被截断,且分行结构和时间轴符号极易被重新排版打乱。
  • DeepL 网页版仅对付费用户开放 SRT:DeepL 网页翻译支持 SRT 文件上传,但该功能仅向 DeepL Pro 付费用户(Advanced、Ultimate、Team、Business)或 API 方案开放;免费账号、Pro Starter 和 Pro Individual 无法在网页端上传 SRT 文件。此外,DeepL 网页功能页明确说明暂不支持 WebVTT(.vtt),仅在开发者 API 文档中列出了 SRT 与 VTT 的调用支持(单文件 150 KB 限制)。
  • 通用大模型聊天窗口长文容易失真:直接把几十行字幕贴进对话框让大模型翻译,短视频尚可应付;但一旦文件超过数百行,大模型经常会出现漏句、擅自将 --> 简写为单个箭头、吞掉时间轴的前导零,或者把原本分行的两句对白合并成一段意译,后续人工排查时间轴的工作量极大。

三种翻译 SRT 文件的实操方案

下面用意扣(Equalang)演示完整流程,并客观对比行业常见方案:

方案一:使用意扣(Equalang)直接翻译字幕文件

如果需要免安装、直接上传文件并下载成品字幕:

  1. 打开意扣文档翻译页面,直接上传 .srt 或 .vtt 文件。
  2. 选择目标语言(例如英语翻简体中文、西语翻英语等)。
  3. 启动翻译任务。文件翻译引擎会自动解析字幕结构,仅提取对白内容进行翻译,序号与逗号毫秒时间轴原样保留。
  4. 翻译完成后进入翻译工作台,左侧为原字幕、右侧为译文字幕,两栏支持同步滚动对照检查。
  5. 检查无误后,直接下载翻译后的 .srt 文件。
意扣翻译工作台界面,左栏显示英文字幕 sintel.en.srt,右栏显示中文译文,包含序号与时间轴
在工作台左栏英文字幕与右栏中文译文中,序号与时间轴两边一一对应。字幕素材来自 Blender 基金会开放电影《Sintel》官方字幕(CC BY 3.0,durian.blender.org)。

意扣网页端单次上传一份文件,同一账号最多同时处理 3 份文档,上传的文件与翻译结果保留 14 天,且不使用用户提交的内容训练 AI 模型。

方案二:DeepL Pro 或 DeepL API(适合付费订阅用户)

如果团队已经开通了 DeepL Pro Advanced、Ultimate 或 API 服务:

  • 登录 DeepL 网页端或调用 API 上传 .srt 文件。
  • DeepL 会整篇翻译对白文本,同时保持时间戳与基本格式不动。
  • 网页端单文件大小上限为 150 KB(Pro Advanced 限制 100 万字符)或 200 KB(Pro Ultimate 限制 100 万字符)。
  • 适用边界:必须拥有付费订阅;免费用户无法使用,且网页端无法直接处理 .vtt 格式。

方案三:本地专业字幕软件(如 Subtitle Edit、Aegisub)

如果习惯在本地电脑离线处理或精修字幕:

  • 下载安装开源字幕软件 Subtitle Edit(Windows/Linux)或 Aegisub(macOS/Windows)。
  • 导入原始 .srt 文件。
  • 使用软件内的自动翻译功能,填入个人申请的第三方翻译 API Key 进行批量机翻,或者对照波形逐句手工翻译。
  • 适用边界:需要本地安装配置,且自行申请与管理 API Key;如需逐句核对修改,需要投入较多时间。

字幕格式防坑:编码、换行与语速规范

翻译对白只是第一步。字幕如果超出屏幕宽度、显示时间太短或出现乱码,观众依然无法正常观看。

1. SRT 与 WebVTT 的格式差异

虽然两者都是常见的文本字幕,但时间轴语法存在严格区别,混用会导致解析失败:

  • SubRip (SRT):源自早期 DVD 提取工具(美国国会图书馆 FDD000569 归档)。它缺乏严格的统一标准,历史上没有强制字符编码规范(早期默认 Windows-1252,支持 UTF-8/UTF-16)。时间轴毫秒前必须使用逗号(00:01:02,500 --> 00:01:04,000),每条字幕上方必须有递增数字序号,互联网媒体类型登记为 text/plain。
  • WebVTT (.vtt):W3C 候选推荐标准草案(当前草案日期为 2026 年 5 月 20 日)。文件开头必须带有可选的 BOM 和 WEBVTT 标识行,强制采用 UTF-8 编码,媒体类型为 text/vtt。时间轴毫秒前使用英文句点(00:01:02.500 --> 00:01:04.000),小时为零时可以省略,序号为可选。

2. 字符编码:务必保存为 UTF-8

许多旧播放器或剪辑工具导出的 SRT 使用的是本地旧代码页。如果翻译成中文、日文、阿拉伯文等非西文字符后没有以 UTF-8 格式保存,导入视频网站或播放器时就会变成无法辨认的乱码(mojibake)。YouTube 官方规范明确要求字幕文件必须为纯 UTF-8 格式。

在浏览器中以纯文本打开的 sintel.en-equalang-zh-cn.srt 文件,显示字幕序号、逗号毫秒时间轴与中文对白
在浏览器中以纯文本打开导出的 sintel.en-equalang-zh-cn.srt,UTF-8 编码的中文正常显示,序号、逗号毫秒时间轴与对白折行保持原样。字幕素材来自 Blender 基金会开放电影《Sintel》官方字幕(CC BY 3.0,durian.blender.org)。

3. 专业排版与语速规范(参考 Netflix 定时文本样式指南)

字幕翻译后字数往往会膨胀。遵循成熟的流媒体制作规范(如 Netflix Timed Text Style Guide)可以保证字幕可读性:

  • 单行字数限制:英文字幕建议每行不超过 42 个字符;中文字幕建议单行控制在 16 个字符以内,避免超出画面遮挡视线。
  • 最多行数:每条字幕最多不超过 2 行;未超出长度时尽量保持单行显示。
  • 阅读速度限制:英文字幕成人内容通常不超过每秒 20 个字符(cps),儿童内容建议在每秒 17 个字符以内;中文字幕成人通常不超过每秒 9 个字符,儿童建议在 7 个字符以内。如果译文过长导致观众在规定时间内读不完,应适度提炼精简对白,而不是盲目塞满屏幕。
  • 单条显示时长:每条字幕最短显示时间不少于 5/6 秒(24 帧视频约 20 帧);单条最长显示时间不超过 7 秒。
  • 换行与分词原则:双行字幕推荐呈现“下重上轻”(底行略长)的金字塔结构;断行优先落在标点符号之后或连词介词之前,严禁将固定词组、专有名词拆散在两行。

上传到 YouTube Studio 的实操步骤

获得标准 UTF-8 编码的译件后,可以直接将字幕添加到自己的视频轨道中:

  1. 登录 YouTube Studio,在左侧导航菜单点击字幕(Subtitles)。
  2. 点击需要添加字幕的目标视频。
  3. 点击添加语言(ADD LANGUAGE),选择翻译好的目标语言。
  4. 在该语言行下方的“字幕”列点击添加(ADD)。
  5. 选择上传文件(Upload file),选择包含时间轴(With timing),点击继续。
  6. 选中翻译好的 .srt 或 .vtt 文件上传并保存发布。

YouTube 官方自动字幕仅生成视频原语言内容,多语种字幕需要创作者手动上传。如果是平时观看海外 YouTube 或 Netflix 录播视频想要同屏看双语字幕,也可以使用意扣浏览器插件在桌面端直接开启双语对照字幕显示。

参考资料