Как исправить время субтитров
Сначала потратьте тридцать секунд на диагностику. Обратите внимание, насколько далеко от линии рядом с START находится линия рядом с END. Если оба ошибочны примерно в одинаковой степени, вам нужен SHIFT. Если ошибка увеличивается по мере воспроизведения видео, вам понадобится SCALE.
Применение неправильного варианта только усугубляет ситуацию, и именно по этой причине люди в конечном итоге перемещают один и тот же файл четыре раза. Shift перемещает каждую реплику на фиксированное количество миллисекунд; Scale умножает каждую временную метку на коэффициент, что является правильным исправлением дрейфа.
Постоянное смещение или дрейф?
CONSTANT OFFSET означает, что субтитры везде неправильные. Строка 00:01:00 задерживается на две секунды, а строка 01:40:00 также задерживается на две секунды. Обычной причиной является выпуск с другой длиной вступления или файл, приуроченный к версии с вырезанной рекламой.
DRIFT означает, что ошибка увеличивается по мере воспроизведения видео. Первая строка почти правильная, а последняя строка отстает на сорок секунд. Почти всегда это происходит из-за несоответствия частоты кадров: субтитры были синхронизированы с частотой 23.976 кадров в секунду, а ваше видео воспроизводится со скоростью 25 кадров в секунду или наоборот.
Тест в любом случае один и тот же: проверьте одну строку в начале и одну в конце. Две одинаковые ошибки означают сдвиг. Растущая ошибка означает масштаб.
- Обратите внимание, как далеко от линии рядом с START.
- Обратите внимание, как далеко от линии рядом с END.
- Подобные ошибки: используйте Shift.
- Растущая ошибка: используйте Scale.
Переключение
Введите смещение в миллисекундах. Положительное число приводит к задержке субтитров, что и нужно, когда они появляются слишком рано. Отрицательное число перемещает их раньше, поскольку субтитры отстают от диалога.
Измеряйте, а не предполагайте. Обратите внимание на временную метку, в которой фраза фактически была произнесена, и временную метку, в которой она появляется в данный момент; разница - это ваше смещение. Две секунды — это 2000 ms.
Временные метки фиксируются на нуле, поскольку ни SRT, ни WebVTT не могут представлять отрицательное время, а игрок, вручивший такую метку, ведет себя непредсказуемо. Сдвиг назад на величину, превышающую время начала первого вызова, прикрепляет затронутые вызовы к 00:00:00, и инструмент сообщает вам, сколько их. Это предупреждение является сигналом того, что ваше смещение, вероятно, слишком велико, и именно поэтому большой отрицательный сдвиг необратим при повторном сдвиге вперед.
Масштабирование для изменения частоты кадров
Масштабирование умножает каждую временную метку на постоянный коэффициент. Фактором является соотношение частот кадров.
Субтитры, рассчитанные на 23.976 кадров в секунду, против видео 25 кадров в секунду: умножьте на 25, разделите на 23.976, примерно 1.0427. Идем в другую сторону: 23.976 делим на 25, примерно 0.959.
Если вы не знаете частоту кадров, выведите коэффициент из самого дрейфа. Разделите правильное время последней строки на ее текущее время. Примените его, затем еще раз проверьте оба конца — шкала обычно оставляет небольшое остаточное смещение, которое устраняется за одну смену.
Слияние и разделение
Фильмы, выпущенные в виде двух файлов, необходимо объединить. Загрузите основной файл, выберите второй на панели слияния и задайте ему смещение: там, где начинается вторая часть на объединенной временной шкале. Если первая часть выполняется 58 минут 20 секунд, смещение составит 3,500,000 ms. Сигналы из обоих объединяются, повторно сортируются по времени начала и перенумеровываются с 1.
Разделение делает обратное в выбранную вами временную метку. По умолчанию вторая часть перебазируется и начинается с нуля, что вам и нужно, когда она будет воспроизводиться с отдельным видеофайлом. Сигнал, расположенный между точкой разделения, соответствует той части, с которой он начался, а не разрезается пополам.
Рабочий пример: файл смещается на 40 секунд за 90 минут.
Первая строка должна появиться в 00:00:32 и появится в 00:00:31 — достаточно близко. Последняя строка должна появиться в 01:28:10 и появится в 01:24:33. Ошибка растет, так что это дрейф, а не смещение.
Преобразуйте оба значения в секунды. Правильное время — 5,290 секунд; текущее время 5,073 секунд. Коэффициент равен 5290, разделенному на 5073, что составляет 1.0428.
Это почти точно 25, разделенное на 23.976, что подтверждает диагноз: субтитры, рассчитанные на выпуск 23.976 кадров в секунду, воспроизводятся на фоне видео 25 кадров в секунду.
- Примените масштабный коэффициент 1.0428.
- Еще раз проверьте первую и последнюю строки.
- Последняя строка теперь отображается правильно; первый переместился с 31 примерно на 32.3 секунды, опоздав примерно на треть секунды.
- Примените сдвиг -300 ms для завершения.
Результат: Оба конца находятся в пределах нескольких десятых секунды, что находится в пределах диапазона, который зритель воспринимает как синхронизированный. Две операции в правильном порядке: масштаб дрейфа, затем небольшой сдвиг остатка.
Откройте инструмент
Сдвиг или масштабирование таймингов в Subtitle Toolkit
Применяет сдвиги и масштабирование всего файла в вашем браузере и предупреждает вас, когда сдвиг фиксирует сигналы на нуле.
Что это не распространяется
- Сдвиг и масштабирование применяются ко всему файлу. Невозможно изменить время только выбранного диапазона сигналов.
- Временные метки фиксируются на нуле, поэтому при большом отрицательном сдвиге информация теряется, и его нельзя отменить сдвигом вперед.
- Только SRT и WebVTT.
- Инструмент не может определить частоту кадров вашего видео или файла, для которого были синхронизированы субтитры. Оба диагноза исходят от вас.
- Нет анализа звука и автоматического определения синхронизации.