Субтитры не в такт с видео? Почему они сбиваются и как исправить тайминг
Субтитры сбиваются двумя способами. Либо все строки смещены на одну и ту же величину, либо разрыв растёт по мере воспроизведения видео. Постоянный разрыв исправляется сдвигом каждой строки на одно и то же количество секунд. Растущий разрыв требует привязки по двум точкам или смены частоты кадров, потому что картинка идёт с другой скоростью, чем та, под которую выставлен тайминг субтитров. Прежде чем менять файл, выясните, какой из двух случаев у вас.
Исправить тайминг субтитровСубтитры идут раньше или позжеСделать бесплатноЧто хранит файл субтитров
Файл субтитров — это список реплик. У каждой реплики есть время начала, время окончания и текст для показа. Плеер показывает реплику, когда счётчик видео доходит до времени начала, и скрывает её в момент окончания. Субтитры не синхронизированы, когда эти времена больше не совпадают с речью в кадре.
Вот одна реплика в файле SRT:
1
00:00:01,000 --> 00:00:03,500
Здравствуйте, и добро пожаловать обратно.
Время записано в часах, минутах, секундах и миллисекундах. Эта реплика показывается с 1,0 секунды до 3,5 секунды.
Постоянный разрыв: сдвиньте все строки
Если все субтитры опережают или отстают на одну и ту же величину, список и видео начинаются с разных точек. Частые причины:
- Видео обрезали. Из начала вырезали заставку или логотип, а субтитры не трогали.
- Субтитры сделаны для другого монтажа, например для телевизионной версии с дополнительным вступлением.
- Файл вырезали из более длинного видео. Теперь его отсчёт начинается с нуля, поэтому каждая реплика опережает на длительность вырезанного фрагмента перед ней.
Исправление — сдвиг: прибавьте или вычтите одно и то же количество секунд у каждой реплики. Прибавляйте, если субтитры появляются слишком рано. Вычитайте, если они запаздывают. Если строка появляется за две секунды до того, как говорящий начинает, сдвиньте все реплики на две секунды позже. Затем проверьте первую строку и одну ближе к концу. Если обе совпадают, сдвиг выбран верно.
Растущий разрыв: частота кадров и дрейф
Частота кадров — это количество неподвижных кадров, показываемых за секунду. Кино часто хранится с частотой 23,976 кадра в секунду. Многое европейское телевидение работает на 25. Когда тот же фильм идёт на 25 кадрах в секунду, он идёт примерно на 4 процента быстрее, поэтому каждое событие на шкале времени происходит немного раньше. Субтитры при этом по-прежнему рассчитаны на исходный тайминг.
Разрыв растёт, потому что ошибка — это процент, а не фиксированная величина. В начале субтитры почти точны. Через сорок минут они отстают больше чем на минуту. К концу 90-минутного фильма отставание достигает почти четырёх минут. Любое несовпадение скорости даёт тот же эффект, будь то конвертация или монтаж.
Исправьте дрейф по двум точкам
Найдите две строки, которые явно совпадают с речью: одну ближе к началу, другую ближе к концу. Запустите видео и отметьте момент, когда каждая фраза начинается в кадре. Сравните его со временем в файле. Каждая пара даёт одну точку, а две точки задают прямую, по которой файл можно выровнять.
Пример расчёта. Строка в 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. При конвертации между ними тайминг сохраняется: меняются только заголовок и разделитель дробной части. Не заменяйте все запятые на точки через поиск и замену, потому что тогда изменятся и запятые внутри текста субтитров. Меняйте только строки с временем.
Найдите точный кадр
Чтобы проверить тайминг на глаз, нужен кадр, с которого начинается фраза. Неподвижный кадр из видео в этот момент показывает картинку, что помогает найти реплику. Сохраните кадры как изображения или сделайте контактный лист всего ролика, чтобы увидеть сразу несколько моментов. Кадр показывает картинку, но не звук, поэтому прослушайте реплику тоже.
Особые случаи
- Вырезанная сцена. Если сцену вырезали, разрыв меняется скачком в этом месте, а не растёт. Каждая половина требует своего сдвига. Разделите файл по месту склейки и исправьте обе части отдельно.
- Реплики до нуля. Сдвиг может увести первую реплику в отрицательное время. Обрежьте такие реплики или перенесите их к началу и проверьте первые строки файла.
- Только для своего плеера. У большинства видеоплееров есть настройка задержки субтитров. Она меняет тайминг только в этом плеере и не трогает файл.
- Сохраните оригинал. Сохраните исправленный файл под новым именем. Исходный файл — ваш путь назад.
Переведено с помощью ИИ с Английский оригинал.
Комментарии
Комментариев пока нет. Будьте первым.


