如何在 Mac 上把字幕压制进视频
用 HandBrake、Final Cut Pro、Resolve、Premiere 或 cinemaOS 在 Mac 上压制硬字幕:何时该压制、易读的字幕样式,以及上传前的 QC 检查。
在 Mac 上把字幕压制进视频,就是在导出时把字幕文字渲染进画面本身,这样它在任何播放器上都会显示,也无法关闭。免费的做法是用 HandBrake:打开视频,在 Subtitles 标签页添加 SRT 文件,然后勾选 Burn In。如果你已经在用 Final Cut Pro、DaVinci Resolve、Premiere Pro 或 cinemaOS 剪辑,它们在导出时都有压制字幕的选项。真正难的是另外几件事:判断到底要不要压制,让文字在手机上也看得清,以及在公开发布前检查文件。
压制硬字幕,还是交付外挂字幕文件?
压制进画面的字幕通常叫硬字幕,也叫开放式字幕。外挂字幕文件(比如 SRT 或 WebVTT)随视频一起分发,文字由播放器绘制,也就是常说的软字幕。
以下情况适合压制:
- 平台或播放器会忽略字幕文件。 很多短视频应用、即时通讯应用、演示软件和场馆放映系统只显示画面。
- 大多数人静音观看。 社交平台的信息流默认静音自动播放,需要点一下才能打开字幕的话,很多观众根本不会去点。
- 字幕是故事的一部分。 一场用另一种语言进行的戏的译文,或者观众必须看懂的标牌文字,都属于影片本身。
- 样片必须在任何地方看起来都一样。 发给影展或客户、可能在任何设备上打开的链接,把文字固定在画面里更稳妥。
以下情况更适合外挂字幕:
- 观众需要自己控制。 无障碍观看取决于能否打开字幕、调整字号或选择语言。硬字幕会拿走这些选择。
- 你要交付多种语言。 一个母版加几个字幕文件,比每种语言各渲染一版轻便得多。
- 接收方有交付规范。 电视台、流媒体平台和发行方通常要求字幕文件加无字幕母版,而不是硬字幕。
- 文字可能还会改。 SRT 里的错字一分钟就能改好。硬字幕里的错字意味着重新渲染、重新上传。
最稳妥的习惯是让字幕尽可能长时间保持为数据,只在确实需要的交付物里压制。如果你不确定平台要哪种文件格式,我们的字幕格式指南讲解了 SRT、WebVTT、EBU-STL 等格式。
压制之前,先把字幕文件定稿
压制会把每一个错误都固定下来,所以先改好文字。
- 用词和人名。 检查专有名词、数字,以及任何可能是语音模型猜出来的内容。
- 时间轴。 每行字幕应在说话人开口时出现,在说完后稍过片刻消失,不要一闪而过。
- 行长和阅读速度。 最多两行,在自然的语义停顿处断行。专业的字幕风格指南会限制每行字数和每秒字数。Netflix 英语定时文本风格指南是常用的参考,具体数值请以其最新版本为准。
- 镜头切换。 字幕跨过剪切点拖了几帧,压制后会显得很粗糙。要么对齐剪切点,要么明显地延续到剪切点之后。
如果字幕是译文,现在就请一位熟练掌握该语言的人通读一遍。我们的如何在 Mac 本地翻译字幕一文介绍了这个审校步骤。
经得起压缩的易读样式
硬字幕要在亮画面和暗画面上、在小小的手机屏幕上、在平台自己的二次转码之后都能看清。
- 字体。 字形清楚的简洁黑体在小字号下最易读。避免过细的字重和压扁的窄体。
- 字号。 以观众会用的最小屏幕来判断。在手机上看的竖屏视频,通常比在笔记本电脑上看的横屏文件需要更大的字。
- 对比度。 白色或略偏暖的白色文字,加深色描边或柔和阴影,能应付大多数画面。在画面很杂的镜头上,在文字后面加一块半透明的深色底框最可靠。
- 位置。 文字要放在字幕安全框内。发 9:16 的内容时,要在底部和两侧给应用的按钮、文案和进度条留出空间,这往往意味着字幕要比横屏影片放得更高。
- 避让。 如果画面底部已经有屏幕文字或人名条,这一行字幕就移到画面顶部,不要叠在一起。
- 字符。 确认字体覆盖文件里的所有重音符号和文字系统。缺失的字形会显示成空方框。中文字幕尤其要确认生僻字也在字库里。
- 一致性。 只在有明确理由时才用斜体,比如画外音,并在整部作品中保持同一种样式。
在最终交付的分辨率和画幅下压制。如果要把 16:9 的影片重新构图成 9:16,一定要在重新构图之后再加字幕,绝不能在之前,否则字幕会被裁掉。我们的横屏视频转竖屏重新构图指南介绍了这个流程的其余部分。最后,从你最好的母版导出,而不是从已经压缩过的文件导出,并给编码器足够的码率。码率一低,最先受损的就是文字的细边缘。
在 Mac 上压制字幕的几种方法
苹果自带的免费应用做不了这件事。QuickTime Player 和 iMovie 都没有导入 SRT 文件并压制的选项,在 iMovie 里你只能把每一行都手动重打成标题。只要超过几行,就用下面的某种方法。菜单名称对应各应用的近期版本,可能随版本更新而变动,如果找不到,请查看厂商的帮助页面。
HandBrake:免费,适合已完成的视频
HandBrake 是一款免费的开源转码工具。打开成片,进入 Subtitles 标签页,用 Tracks 菜单添加外部字幕文件。如果 SRT 里有带重音的字符或中文,先设置好字符编码,再为这条轨道勾选 Burn In。每次编码只能压制一条字幕轨。普通 SRT 文件会以简单的默认样式渲染,而 ASS 或 SSA 文件会保留自带的字体、颜色和位置,很多人就是靠它在 HandBrake 里做出自定义样式的。无论如何画面都会重新编码,所以请选择高质量的预设。
ffmpeg:适合脚本批量处理
如果你习惯用终端,ffmpeg 的 subtitles 滤镜可以把 SRT 或 ASS 文件压制进画面,它的 force_style 选项可以为 SRT 输入设置字体、字号和描边。这需要包含 libass 的 ffmpeg 版本。
Final Cut Pro
通过 File ▸ Import ▸ Captions 导入字幕文件,或者直接在时间线上创建字幕。在检查器里调整文字和位置,可调范围取决于各字幕格式的限制。共享时,可以在 Roles 标签页选择要压制哪个字幕角色。
DaVinci Resolve
把字幕文件导入媒体池,作为字幕轨道加到时间线上。轨道和字幕的样式,包括字体、字号、颜色、描边、阴影和背景,都在检查器里设置。在 Deliver 页面打开字幕设置,启用字幕导出,并选择把字幕压制进视频。
Premiere Pro
导入 SRT 会生成一条字幕轨道,然后用 Premiere 的字幕和图形工具设置样式。在导出设置的 Captions 部分,有把字幕压制进视频的选项。
cinemaOS
在 cinemaOS 中,字幕位于 Finisher(⌘2)▸ Localize ▸ Captions。你可以导入字幕文件,或者在本地转录对白,校正后,如需另一种语言就在 Mac 上翻译,再对着画面预览。交付前,QC 会检查字幕。之后你可以导出 SRT、WebVTT、ASS、SCC、EBU-STL 或 Apple iTT 等格式的外挂字幕文件,也可以选择 Burn In,把字幕渲染进画面,生成一个新的交付文件。导出不会悄悄覆盖已有文件:如果文件名已被占用,cinemaOS 会写入一个名称唯一的新文件,所以压制版会放在干净母版旁边,而不是替换它。离线字幕教程演示了从字幕到法语版本再到 Burn In 的完整流程。
坦白说说它的局限:cinemaOS 目前只能在 Apple 芯片的 Mac 上运行,Windows 版计划于 2027 年 11 月推出,而且它还是个年轻的应用,版本 0.2,Build 9。本地转录和翻译仍然需要人工做语言审校,各平台的字幕要求也仍需对照接收方当前的规范确认。如果你手上已经有成片和正确的 SRT,只做这一件事的话,HandBrake 更快。
上传前对压制好的文件做 QC
检查导出的文件,而不是时间线。
- 完整播放文件。 在观众使用的设备上全屏观看。如果是社交平台的剪辑,那就是手机。
- 在开头、中段和结尾检查同步。 第一分钟看不出的偏移,到最后可能很明显。
- 每一行都读一遍。 找错字、错误的断行、丢失的重音符号,以及缺字形导致的空方框。
- 看难处理的镜头。 明亮的天空、白墙、雪景和快速运动,是描边和底框最容易失效的地方。
- 看画面边缘。 确认没有内容被裁掉,平台按钮也不会挡住文字。
- 检查剪切和淡入淡出。 字幕不应在镜头切换时闪烁,也不应在叠化时消失。
- 确认是正确的版本。 语言、画幅、时长和音频都要和订单一致。
- 先私密上传。 先以私密或不公开方式发布,看过平台自己的二次转码效果后再公开。
交付后保留三样东西:无字幕母版、字幕文件和压制好的渲染文件。有了前两样,你就能修改或出新版本,而不用从头再来。
常见问题
压制进去的字幕以后还能去掉吗?
去不干净。文字已经是像素的一部分,要去掉只能遮盖或重绘那些区域。保留无字幕母版和字幕文件,你就永远不需要这么做。
上传 YouTube 需要压制硬字幕吗?
不需要。YouTube 支持上传字幕文件,观众可以自行开关,很多视频还能自动翻译。只有准备转发到会忽略字幕文件的平台的片段,才需要压制。
为什么压制后的字幕看起来模糊或有马赛克?
通常是码率太低、压制后又缩放了视频,或者源文件本身已经被严重压缩。请在交付分辨率下、用高质量母版、以足够保证文字边缘清晰的码率进行压制。
下一步
想清楚哪些交付物真的需要硬字幕,其余的都保留为字幕文件。如果你希望字幕、翻译和 Burn In 与剪辑在同一个项目里完成,可以试试 cinemaOS:每月 9.99 美元(不含增值税),60 天免费,无需绑卡,也不会自动扣费。