**视频字幕怎么做？SRT和硬字幕全解析**
Source: https://sozai.app/zh/add-subtitles-to-a-video-you-made/

[字幕](https://sozai.app/zh/category/zimu/)

# 给自己的视频加字幕，到底要经过哪些步骤

8 月 2, 2026  • 1 min read • 114 views  • 最后更新： 8 月 2, 2026

![A wide monitor on a desk showing an editing timeline, headphones and a small drive beside the keyboard](https://sozai.app/wp-content/uploads/post-add-subtitles-to-a-video-you-made-1280x720.webp)

> ### 核心要点
>
>
>
> 先决定字幕是直接烧进画面里，还是做成单独的字幕文件。烧录字幕在任何地方都能播放，但永远关不掉。单独的字幕文件（通常是 `.srt` ）可以随时开关、后期修改，也能被搜索引擎读取，但前提是对方平台支持上传字幕文件。想清楚这一点之后，剩下的流程每次都一样：整理出文字、拆成带时间的句段、对着视频核对一遍、最后上传或导出。字幕文件本质就是纯文本，改起来很简单。

视频剪完了。这时候有人要字幕，或者你发现大部分人是把声音关掉看视频的，于是打开导出窗口，却找不到一个明显的“字幕”选项。这很正常。字幕跟音乐、调色不一样，它并不是视频本身的一部分。大多数情况下，字幕是完全独立的东西，有自己的文件、自己的格式、自己的一套规则。

所以在写下第一行字幕文字之前，有一个选择必须先做，而这个选择会决定后面所有的工作方式。几乎所有人都是无意中做了这个选择的。这篇文章帮你有意识地做一次。

## 烧录进画面，还是做成独立文件

给视频加文字，基本上就两种办法。

**烧录字幕（硬字幕）** 是在导出视频时直接把文字画进画面里的。这些文字的像素就是视频画面的一部分，跟一个台标或下方字幕条没有区别。它们永远显示在屏幕上，观众没法关掉、没法调大小、没法改样式或翻译，如果打错了一个字，你得把整段视频重新导出才能修。好处是它换来了极强的兼容性：任何播放器、任何平台、任何被别人转发或录屏的版本，字幕都跟着走，不需要对方配合。

**独立字幕文件（外挂字幕）** 是和视频分开存放的一个文件。播放的时候，播放器读取这个文件，再把文字实时叠加在画面上。观众可以自己选择开或关。你要改一个错别字，只需要编辑这个文本文件再重新上传，视频本身完全不用动。想加第二种语言，也只是再加一个文件而已。因为什么都没有烧进画面，底下的视频始终是干净的。

问题在于，外挂字幕这条路完全取决于对方平台支不支持。有些平台很欢迎你上传字幕文件，还会给观众一个字幕开关按钮；有些平台无论如何都不接受上传字幕文件。如果目标平台根本不支持字幕文件上传，那么烧录字幕就是唯一的办法，你把字幕文件格式做得再规范也没用。

动手之前，先去确认目标平台到底支持什么。如果同一段视频要发到两个地方，一个支持字幕文件、另一个不支持，那你可能真的需要导出两版：一个是干净画面配独立字幕文件的版本，一个是烧录好字幕的版本。这确实麻烦，但这就是老老实实的答案。

## 字幕文件里到底装着什么

`.srt` 格式是接受度最广的字幕文件格式，除非有特别的理由，否则应该优先用它。它的内容简单到几乎有点无聊：每一句字幕依次由四部分组成——一个序号、一行时间码、一行或几行文字，然后是一个空行。接着下一句字幕重新开始。

时间码的写法是 `时:分:秒,毫秒`——先是时分秒，然后用逗号隔开毫秒。这个逗号很关键。如果播放器要的是逗号，文件里写的却是句点，播放器可能会拒绝整个文件，或者直接跳过这一句，而这种出错往往看起来什么都没发生，而不是弹出一个报错提示。如果想逐字段搞懂这个格式，可以读一读 [这篇讲SRT格式细节的文章](https://sozai.app/zh/what-is-an-srt-file/) ，值得看一次。

`.vtt` 格式是你会遇到的另一种字幕格式。它以单独一行的 `WEBVTT` 开头，毫秒前用句点而不是逗号隔开，字幕序号是可选的。除此之外，它还能做SRT做不到的事：把字幕放在屏幕上非底部中间的位置，还能携带样式信息。如果你想让字幕避开画面上的某个图形元素，VTT就是能实现这一点的方式。

如果你手上是VTT文件，而对方平台只要SRT，转换起来很简单，但要清楚转换之后会发生什么。时间码保留，文字保留，但位置信息、样式和任何附加元数据会被永久丢弃，因为SRT格式本身根本没有地方存放这些信息。这不是转换工具的问题，而是目标格式压根没有对应字段。能选的话，尽量往不丢失信息的方向转换；不能选的话，就要接受字幕会落到默认的底部居中位置。

## 标准流程：整理文字、打时间轴、核对、上传

一旦决定走哪条路，实际操作就永远是同样的四步，顺序也不变。

- **整理出文字。** 把视频里说的每一句话都写下来。
- **拆句并打上时间。** 把文字拆成一个个句段，给每句标好开始和结束时间。
- **对着视频核对一遍。** 打开字幕播放一遍，把不对的地方改掉。
- **上传字幕文件，或者带字幕重新导出视频。**

如果全靠手打，第一步是最耗时间的环节。你可以手动逐字听写，这样准确，但耗时是视频长度的好几倍；也可以先让软件自动转写，再人工校对，这样速度快很多，但会产生一些需要专门找出来改的错误——通常出在人名、专业术语，以及背景噪音很大的地方。对大多数人来说，自动转写加上仔细校对是比较合适的默认做法。有了文字之后， [这个网页版字幕生成工具](https://sozai.app/zh/subtitle-generator/) 可以帮你完成拆句和打时间轴的部分。

SozAI是一款支持iOS、Android和macOS的转写应用，能把音频文件、视频文件、录音以及YouTube链接转换成带说话人标注的文字，并支持99+种语言之间的翻译；网站上的网页工具用来处理字幕文件和统计字数，但本身不做语音转写。这只是众多选择之一——如果你用的剪辑软件已经能生成可用的文字稿，直接用那个就好，省掉这一步。

如果你手上只是一整段没有任何时间信息的纯文本， [这个纯文本转SRT的工具](https://sozai.app/zh/tools/txt-to-srt/) 可以帮你完成拆句、写好时间码格式这些机械性的工作。之后你还是需要对着视频微调时间点，因为没有工具能光靠文字猜出说话人在哪里停顿。

## 一句字幕应该停留多久

时间轴打得好不好，是业余字幕最容易露馅的地方，而常见的两种错误恰好相反。

停留不到大约一秒的字幕，很难读清楚。眼睛需要时间去找到文字、看懂内容、再回到画面上，不到一秒根本来不及。观众看到的只是一闪而过的东西，隐约觉得自己漏看了什么。这种情况通常发生在文字稿按每个逗号都切句，或者一个很短的插话——一声“嗯”、一个名字、一声笑——被单独做成一句字幕，长度刚好等于那个声音本身的长度。

停留超过大约八秒的字幕是另一个问题，几乎总是因为两句话被合并成了一句字幕。字幕太长，观众读完之后它还杵在那里，这只是有点烦；真正的麻烦是，第二句话往往还没被说出来，字幕就已经出现在画面上了。文字和声音渐渐脱节，观众开始提前往下读，而不是好好看画面。

尽量让每句字幕停留时间落在这两个极限之间，按句子和分句的自然停顿去拆分，而不是按固定字数硬切，句与句之间也要留出呼吸的空间。如果拿不准一句字幕是不是太长，就按说话人实际的语速把它念出来，如果念到中间喘不上气，那就说明它该拆成两句了。

## 上传前怎么检查字幕文件

字幕文件本质是纯文本，你可以在任何电脑上用任何文本编辑器打开它，从头看到尾，想改什么就改什么。这大概是关于字幕最有用的一个知识点，因为它意味着，改一个错字最快的办法，几乎从来不是重新打开剪辑软件、在时间线上找到那一句、再重新导出。而是直接打开文件、改掉这个字、保存。

会出错的地方分两类，检查方式也不一样。

**结构性错误** 会导致文件根本加载不出来：句与句之间少了一个空行、时间码里该用逗号的地方写成了句点、结束时间早于开始时间、两句字幕的时间互相重叠。这些问题人眼扫一遍很容易漏掉，但机器一查就能发现，这正是 [SRT文件校验工具](https://sozai.app/zh/tools/srt-validator/) 的用处。上传之前先跑一遍校验，就能提前抓住这类错误——否则它们表现出来往往就是字幕悄无声息地不显示。

**内容性错误** 只有实际播放才能发现：名字拼错了、字幕整体慢了半秒、某句话字面上没错但读起来很别扭。把字幕打开，按正常速度从头看到尾，看的时候要盯着文字而不是画面。这个过程需要花跟视频一样长的时间，没有捷径可走。

## 这些方法解决不了什么

平台自动生成的字幕，跟你自己做的字幕文件不是一回事。它们是平台直接从音频里生成的，没有你的参与，往往在最关键的词上出错——产品名、人名、专业术语——而且你通常没多少办法去调整它。如果平台允许你上传自己的字幕文件，用它替代自动生成的猜测结果，效果会明显好一截。如果平台不允许上传，那烧录字幕就是唯一能保证屏幕上出现的文字是你自己选定的方式。

烧录字幕的“永久性”常常被低估。一旦导出，文字就成了画面的一部分。这段视频没法再翻译成别的语言，没法提供不带字幕的版本，小屏幕上的观众也没法把字放大。如果这段视频未来有可能被重复利用、翻译成别的语言、或者交给别人再加工，那就应该单独保留一份干净的母版视频，以及那份字幕文件本身，即便你今天发布的这一版是把字幕烧进去的。

格式之间的转换，每次都要付出同样的代价。从VTT转成SRT，位置信息和样式会永久丢失，因为SRT根本没地方存放它们。如果你精心做过能避开画面上某个图形的字幕位置，之后为了满足某个只认SRT的平台去做转换，那些字幕就会落到默认位置，正好挡住那个图形。提前知道这一点，总比等视频发布之后才发现要好。

答案

## Frequently Asked Questions

字幕应该烧进视频里，还是做成单独的文件上传？

如果平台支持上传字幕文件，就用独立文件；不支持的话，就只能烧录。独立文件可以被观众自己关掉，改错字不用重新导出视频，以后还能再加别的语言版本。烧录字幕是在导出时直接画进画面里的，好处是不需要平台配合、到哪都能播放，但代价是永远关不掉，改动也必须重新导出整段视频。

SRT和VTT这两种字幕格式有什么区别？

两者都是纯文本字幕文件，但SRT更简单、支持范围更广，VTT功能更多。SRT用逗号隔开毫秒，每句字幕都有序号。VTT以单独一行的WEBVTT开头，毫秒前用句点而不是逗号，序号是可选的，而且支持SRT完全没法表达的字幕定位和样式设置。

一句字幕应该在屏幕上停留多久？

大致在一秒到八秒之间比较合适。不到一秒，观众根本没时间找到文字、读完再回看画面。超过八秒，通常说明两句话被合并成了一句字幕，导致第二句话的字幕早早出现在画面上，说话人还没说到那句。拆分字幕时最好按句子和分句的自然停顿来，而不是按固定字数硬切。

字幕文件可以手动修改吗？

可以。字幕文件本质是纯文本，任何文本编辑器都能打开，所以改一个拼错的名字或调整一下时间点，通常比重新打开剪辑软件、重新导出要快得多。修改时要保持结构完整：每句字幕都要有序号、时间码那一行、文字内容，以及后面的空行，时间码里的标点也要写对。

为什么平台不接受我上传的字幕文件？

原因通常是两个：这个平台本身就不支持上传字幕文件，或者文件本身有结构性错误。不同平台在这件事上差别很大，如果对方压根不支持字幕上传，那烧录字幕就是唯一的办法。如果支持上传，就检查一下句与句之间是不是少了空行、SRT时间码里是不是把逗号写成了句点，或者是不是有两句字幕时间对上了。

平台已经能自动生成字幕了，还需要自己做吗？

如果对准确度有要求，通常还是需要的。平台的自动字幕完全靠音频生成，没有人工把关，往往恰好在最重要的地方出错——人名、产品名、专业术语——而且你能调整的空间很有限。如果平台允许上传自己的字幕文件，用一份你自己核对过的文字，效果会比自动猜测靠谱得多。

![Merey Tleugazin](https://sozai.app/wp-content/themes/sozai/assets/images/merey-tleugazin.webp)

[Merey Tleugazin](https://sozai.app/about/merey/)

SozAI 创始人。正在为全球专业人士打造将语音转为文本的工具。

- [Instagram](https://instagram.com/mereytleugazin)
- [X](https://x.com/mereytleugazin)

## 相关文章

- [8 月 2 1 min ### 如何在论文中引用视频内容，而不必逐字重新打出来](https://sozai.app/zh/quote-a-video-in-an-essay/)
- [7 月 19 1 min ### 如何将 YouTube 字幕下载为 SRT（3 种免费方法）](https://sozai.app/zh/download-youtube-subtitles-srt/)
- [8 月 2 1 min ### 无障碍字幕真正需要满足的条件](https://sozai.app/zh/captions-for-accessibility/)

[![SozAI](https://sozai.app/wp-content/themes/sozai/assets/images/appicon.png) SozAI — 免费下载 即时转录音频和视频 获取 App](https://sozai.app/zh/download/)


---
This is the markdown twin of https://sozai.app/zh/add-subtitles-to-a-video-you-made/ — the same content, without the markup.
Published by SozAI (https://sozai.app). Reuse and quotation are allowed with attribution and a link back.
Machine-readable index: https://sozai.app/llms.txt · data API: https://sozai.app/api/
