SRT 时间戳格式:详解 hh:mm:ss,mmm
逐项了解 SubRip 时间戳 hh:mm:ss,mmm --> hh:mm:ss,mmm 的含义、常见格式错误、它与 VTT 和 SBV 的区别,以及如何从 TranscribeNext 导出 SRT。
SRT 时间戳行的格式是 00:01:23,456 --> 00:01:27,890。小时、分钟和秒各占两位,毫秒占三位;秒与毫秒之间使用英文逗号。起止时间之间依次为空格、两个连字符、大于号和空格。格式不正确时,播放器可能跳过该条字幕。
SRT 文件结构
SRT(SubRip Subtitle)是纯文本格式,没有文件头、样式块或元数据。各条字幕带有编号,并以空行分隔。
1
00:00:00,000 --> 00:00:05,230
大家好,欢迎收听今天的播客。
2
00:00:05,230 --> 00:00:09,450
谢谢邀请,很高兴来到这里。
3
00:00:09,450 --> 00:00:15,120
我们直接来聊聊 AI 转写吧。每条字幕通常称为 cue,依次包含以下四部分:
- 序号:从 1 开始递增,单独占一行
- 时间戳行:开始时间、箭头、结束时间
- 文字:一行或多行字幕
- 空行:结束当前字幕条目;最后一条也建议以空行结束
逐项解读时间戳
从左到右解读 00:01:23,456:
- 00:小时,不足两位时补零
- 01:分钟,范围为 00 至 59,不足两位时补零
- 23:秒,范围为 00 至 59,不足两位时补零
- ,:秒与毫秒之间的分隔符,使用英文逗号而非句点
- 456:毫秒,固定三位
因此,00:01:23,456 表示从视频开始算起的 1 分 23 秒 456 毫秒。SRT 使用从零起算的绝对时间,而不是帧编号;同一视频采用 24、25 或 30 fps 时,时间戳的含义不变。
容易造成播放问题的格式错误
- 使用逗号,不是句点。 `00:00:01.500` 是 WebVTT 的写法,不符合标准 SRT 时间戳格式。
- 毫秒固定三位。 `,5` 和 `,50` 不能代替 `,500`。
- 各字段补足位数。 严格的解析器,包括部分硬件播放器,会拒绝 `0:01:23,456`。
- 箭头写作 ` --> `。 依次为空格、两个连字符、大于号、空格;少写字符可能导致解析失败。
- 结束时间必须晚于开始时间。 零时长或起止颠倒的字幕可能被跳过。
- 按开始时间升序排列,并尽量避免重叠;重叠字幕在不同播放器中的表现可能不同。
- 条目之间保留空行,否则下一条的序号可能被当作字幕文字。
重要
常见错误是把毫秒前的逗号写成句点,尤其容易出现在手动转换 WebVTT 时。只把扩展名从 .vtt 改成 .srt 并不会完成格式转换,还需要修改文件内容。
SRT、VTT 与 SBV 的区别
三种格式都能表示起止时间,但写法不同。同一时间范围的示例如下:
SRT 00:01:23,456 --> 00:01:27,890
VTT 00:01:23.456 --> 00:01:27.890
SBV 0:01:23.456,0:01:27.890- SRT:毫秒前用逗号,包含小时,没有文件头;许多编辑器和播放器都支持。
- VTT(WebVTT):毫秒前用句点,小时可省略,以 `WEBVTT` 行开头;支持定位和 CSS 样式,可用于 HTML5 `<track>` 元素。
- SBV(YouTube):毫秒前用句点,小时无需补零;起止时间以逗号分隔,不使用箭头,也没有字幕序号。
实用技巧
手动将简单 SRT 转为 VTT 时,需要在顶部添加 `WEBVTT` 和空行,并把时间戳中的毫秒分隔逗号改成句点。反向转换时则去掉文件头,并把时间戳中的句点改回逗号。
换行、长度与样式
- 一条字幕可以包含多行文字,播放器会逐行显示。
- 常见英文字幕建议不超过两行、每行约 42 个字符;中文应根据画面宽度和阅读速度调整,过长的内容可能在小屏幕上显示不全。
- SRT 没有统一的官方样式规范。许多播放器支持 `<b>`、`<i>`、`<u>` 和 `<font color="#ffffff">`,但部分硬件播放器会直接显示标签文字。
- 字幕显示时长通常建议在 1 至 7 秒左右,并根据文字长度调整。
字符编码
SubRip 出现时尚未统一采用 Unicode,因此旧文件可能出现乱码。TranscribeNext 使用 UTF-8 导出,以保留多语言字符和表情符号。若播放器显示乱码,请检查其编码设置,必要时将文件重新保存为 UTF-8。
从 TranscribeNext 导出 SRT
- 1打开已完成的转写文本
- 2点击“下载”,选择 SRT
- 3系统会将文本分段的时间转换为字幕起止时间
- 4在视频编辑器中将文件导入为字幕
重要
SRT 导出需要与当前文字一致的时间分段。如果编辑后时间信息已失效,系统会拒绝导出;请先检查转写内容与时间戳是否匹配。
上传到 YouTube
- 1打开 YouTube Studio
- 2选择视频
- 3点击左侧菜单中的“字幕”
- 4点击“上传文件”,选择包含时间信息的文件
- 5上传 SRT 文件
- 6YouTube 会读取时间信息并同步字幕
支持 SRT 的软件
- Adobe Premiere Pro
- Final Cut Pro
- DaVinci Resolve
- Sony Vegas
- iMovie
- Camtasia
- VLC Media Player
- YouTube Studio
- Vimeo
常见问题
- 小时可以超过 99 吗? 为兼容常见播放器,建议保持两位小时字段;超长内容可拆分处理。
- 序号必须正确吗? 部分播放器会忽略序号,但编辑器和校验工具可能检查它。建议保持连续编号。
- 字幕可以没有文字吗? 空条目可能无法正确处理;不需要的条目应直接删除。
- 允许使用字节顺序标记(BOM)吗? 现代播放器通常支持带或不带 BOM 的 UTF-8;不带 BOM 的兼容性往往更好。
- 为什么字幕逐渐不同步? 请确认时间戳对应的是同一份视频,而不是剪辑前的版本或时长不同的素材。SRT 使用绝对时间,必须与最终视频匹配。
实用技巧
如果需要在音频中跳转,而不是制作字幕,可使用转写页面中带时间戳的可点击分段,详见时间戳相关说明。
标签
相关文章
VTT 格式:网页视频字幕
导出 WebVTT 字幕,用于 HTML5 视频、网页播放器和现代流媒体平台。
导出指南:选择合适的格式
了解各种导出格式,以及它们各自适合的使用场景。
带时间戳的转写:跳转到录音位置
通过文本分段的时间戳定位录音,搜索文字后跳转收听,并按需导出时间信息。
JSON 格式:面向开发者的结构化数据
导出包含文本分段、时间戳、文件信息和说话人信息的 JSON 数据,便于开发和集成。
相关工具
- 支持的音频与视频格式 — 包括 MP3、WAV、OGG、MP4、MPEG 等格式,以及各格式的限制与使用建议。
- Mac 转写应用 — 使用 Whisper 和 Parakeet 免费离线录音与转写;离线处理时,文件不会离开您的电脑。