指南

如何在 Mac 上制作 SRT 字幕文件

从录音中得到带时间轴的字幕,然后导入 Final Cut Pro、Premiere 或 YouTube。无需上传,也不用转换网站。

搜索这个话题,你看到的多半是想让你上传视频的转换网站。它们你一个都不需要。SRT 就是一个纯文本文件,你完全可以在自己的 Mac 上花几分钟做出来。

SRT 文件到底是什么 #

这一点常让人困惑,所以值得先讲清楚。.srt 文件不是什么特殊的二进制格式。它是一个结构非常简单的文本文件,你可以用 TextEdit 打开它:

1
00:00:00,000 --> 00:00:07,000
Good afternoon everyone and welcome to
FinTech+Sync's second quarter earnings call.

2
00:00:07,000 --> 00:00:10,000
I'm John Doe, CEO of FinTech+.

每个块由一个序号、一个起止时间码、文字内容和一个空行组成。整个规范就这么多。

有一个细节会引发真正的麻烦:SRT 在毫秒前面用的是逗号00:00:07,000)。另一种常见格式 WebVTT 用的是句点00:00:07.000),并且文件开头有一行 WEBVTT。把两者搞混,会得到一个看上去没问题、却悄无声息加载失败的文件。如果有什么东西毫无缘由地拒绝你的字幕,先检查这个字符。

第 1 步:拿到带时间的转录文稿 #

你需要的是时间码,而不只是文字,所以普通的转录不够用——工具必须给你片段级别的时间信息。

Offline Transcription 会在你的 Mac 上完成这件事,不上传文件:放入音频或视频,点击转录,然后导出为 SRT。它可以免费下载试用,关掉 Wi-Fi 也照常工作——如果素材涉及机密,这一点很重要。其他工具也能做到;关键在于导出的内容要包含时间信息。

无论你用哪个,现在视频旁边都躺着一个 .srt 文件了。

第 2 步:用之前先读一遍 #

自动转录会出错,而字幕是这些错误最容易被人看见的地方。

用 TextEdit 打开文件,快速通读一遍。最常出问题的是人名、专业术语、缩写,以及说话人之间的切换处。现在改只要几分钟;等你在剪辑软件里给 400 条字幕都做完样式之后再改,就不是几分钟的事了。

正文文字你可以随便改。只要别动序号、时间码和空行就行。

第 3 步:导入你的剪辑软件 #

Final Cut Pro #

  1. 打开你的项目。
  2. 选择**"文件 → 导入 → 字幕"**。
  3. 选中你的 .srt 文件。
  4. Import as Role 一栏里,从左侧菜单选一个隐藏式字幕角色,再从右侧选一个语言子角色。
  5. 点击导入。

字幕会按照各自的时间码贴到时间线上。Final Cut 支持 SRT、iTT 和 CEA-608,所以你导出的 SRT 可以直接用。字幕进入项目之后的样式选项,可以参考 Apple 自己的隐藏式字幕工作流程指南

Premiere Pro #

  1. 选择**"文件 → 导入"**并选中 .srt。它会像一个素材片段那样出现在项目面板里。
  2. 把它拖到时间线上。
  3. Premiere 会询问 Create Caption Track Format。选择 Subtitle——它给你的样式控制最多。
  4. 切换到 Workspaces → Captions and Graphics,对照画面编辑文字。
  5. 要一次性重设所有字幕的样式,先在 Essential Graphics 里设定好一条字幕,然后使用 Apply to all,或者把它存成 Track Style。

导出时由 Captions 选项卡决定结果:把字幕烧进画面,或者在视频旁边单独写出一个 .srt 文件。

YouTube #

上传视频,然后在 YouTube Studio 中打开**"字幕",选择语言,再选择"上传文件 → 带时间轴"**。选中你的 .srt

请这样做,不要依赖 YouTube 的自动字幕。自动字幕没有标点,人名处理得很差,被索引的方式也不一样——一条正规的字幕轨会被当作真正的文本来读取。

只是想播放文件 #

如果你只想在观看时显示字幕,把 .srt 放到与视频相同的文件夹里,并起一样的文件名。VLC、IINA 以及大多数其他播放器都会自动识别。

常见问题 #

**整体偏移了几秒。**你的转录文稿来自视频的另一个剪辑版本,或者来自一个起点不同的音频文件。请从你正在剪辑的那个文件重新导出 SRT。

**字幕太长,来不及读。**自动工具有时会生成很长的片段。目标大约是两行、每行 42 个字符左右——把更长的内容拆成两个块,并把时间也相应分开。

这个文件在哪儿都加载不了。检查上面说的逗号与句点问题,确认文件保存为 UTF-8 纯文本,并检查每个块之间都有一个空行。TextEdit 可能会不声不响地存成 RTF:保存前先用"格式 → 制作纯文本"

**带重音符号或非拉丁字符显示成乱码。**这个文件不是 UTF-8。用该编码重新保存一次。

简短版本 #

转录时带上时间,导出 SRT,快速扫一遍人名错误,然后在 Final Cut 里选"文件 → 导入 → 字幕",或者在 Premiere 里把它拖到时间线上。整个过程中,录音没有任何理由离开你的机器。

获取 Offline Transcription

音频和视频全程在你自己的 Mac 上转录。不上传任何内容,无需账户,也没有按分钟计费。

macOS 13.0 or higher · iOS 16.4 or higher