字幕不同步?为什么会错位,如何调整时间轴
字幕出错通常有两种情况:要么每一行都偏差同样的时间,要么偏差随着视频播放越来越大。固定的偏差只需把每一行都平移相同的秒数即可修正。越来越大的偏差则需要用两个点来对齐,或者调整帧率,因为画面的播放速度与字幕制作时所依据的速度不一样。修改文件前,先弄清楚你遇到的是哪一种。
调整字幕时间字幕太早或太晚免费使用字幕文件存了什么
字幕文件是一组字幕条目。每条都包含开始时间、结束时间以及要显示的文字。当视频时钟走到开始时间时,播放器显示这条字幕;走到结束时间时隐藏。当这些时间与画面中的语音对不上时,字幕就不同步了。
下面是 SRT 文件中的一条字幕:
1
00:00:01,000 --> 00:00:03,500
大家好,欢迎回来。
时间依次为小时、分钟、秒和毫秒。这条字幕从 1.0 秒开始显示,到 3.5 秒时消失。
固定偏差:整体平移
如果每条字幕都以相同的时间提前或延后,字幕列表和视频就是从不同的起点开始的。常见原因包括:
- 视频被剪过。片头或片头标识被从开头剪掉了,但字幕没有同步处理。
- 字幕是为另一个剪辑版本做的,例如多了一段开场的电视播出版。
- 文件是从一段更长的视频中截出来的。它的时钟现在从零开始,因此每条字幕都会提前,提前的时长就是被截掉的那一段。
修正方法是平移:对每条字幕加上或减去相同的秒数。字幕显示过早就加,显示过晚就减。如果某行字幕比说话人开口早了两秒,就把每条字幕都往后移两秒。然后检查第一行和靠近结尾的一行。如果两处都对得上,平移就是正确的。
越来越大的偏差:帧率与漂移
帧率是每秒显示的静态画面数。电影通常以每秒 23.976 帧存储,许多欧洲电视节目则以每秒 25 帧播放。当同一部电影以每秒 25 帧播放时,速度会快约 4%,因此每个画面事件在时钟上都会略微提前。而字幕仍然按原来的时间制作。
差距会越来越大,是因为误差是一个百分比,而不是固定的时长。开始时字幕几乎是对的;播放到第 40 分钟时,字幕已经落后一分多钟;看到 90 分钟电影的结尾,落后的时间接近 4 分钟。无论速度不一致是由格式转换还是剪辑造成的,结果都一样。
用两个点修正漂移
找两行与语音明显对应的字幕:一行靠近开头,一行靠近结尾。播放视频,记下每句话在画面中开始的时刻,并与文件中的时间对比。每一组对应关系就是一个点,两个点就能确定一条字幕可以遵循的直线。
计算示例。文件中 1:00 的一行,实际在 1:02 说出。靠近结尾处,文件中 1:30:00 的一行,实际在 1:33:50 说出。拉伸系数为 (5630 − 62) ÷ (5400 − 60) = 1.0427,与前面的 4% 一致。把每个时间都乘以 1.0427,然后整体平移,使第一行落在 1:02。
用帧率修正
如果你知道两个帧率,就可以跳过两个点的步骤。把每个时间乘以字幕制作时所依据的帧率,再除以视频的帧率。如果字幕是按每秒 25 帧制作的,而视频是 23.976 帧,则需要的系数为 25 ÷ 23.976 = 1.0427,与计算示例中的拉伸系数相同。
SRT 与 VTT:有什么不同
两种格式都保存同样的内容:每条字幕的开始时间、结束时间和文字。区别在于细节。
| SRT | WebVTT(VTT) | |
|---|---|---|
| 第一行 | 字幕序号 | WEBVTT 这个单词 |
| 小数点 | 逗号:00:00:01,000 | 句点:00:00:01.000 |
| 小时 | 始终写出 | 可以省略:00:01.000 |
| 位置与样式 | 基本格式中没有 | 时间之后可以添加可选设置 |
网页视频通常使用 WebVTT 格式的字幕。大多数桌面播放器和视频编辑软件读取的是 SRT。两种格式互相转换时时间不会变,只改变文件头和小数点。不要用查找替换把所有逗号都换成句点,因为这样也会改动字幕文字中的逗号。只修改时间行。
找到准确的帧
要用眼睛检查时间,你需要找到一句话开始时的那一帧。视频在该时刻的截图能显示画面,有助于找到对应的字幕。将画面保存为图片,或者把整段视频做成缩略图拼图,可以一次看到多个时刻。截图只能显示画面,不包含声音,所以还要听一听这一行台词。
特殊情况
- 删掉了一个场景。 如果剪掉了一个场景,偏差会在那个位置突然跳变,而不是逐渐增大。文件的前后两部分各需要单独平移。在剪辑处把文件拆开,分别修正两个部分。
- 字幕时间变成负数。 平移可能会把第一条字幕推到零以下。请裁剪这些字幕,或把它们移到开头,并检查文件的前几行。
- 只为自己调整。 大多数视频播放器都有字幕延迟设置。它只改变该播放器中的时间,不会修改文件本身。
- 保留原文件。 修改后的文件请另存为新名称。你最初的文件是恢复的依据。
由 AI 辅助翻译自英文原文。
评论
还没有评论。快来抢沙发。


