Русский

Видео и субтитры · Инструментарий субтитров

Как работает изменение тайминга субтитров: смещение каждой реплики на фиксированное смещение

· Как это работает

субтитры таймкоды обработка браузера

Интервалы субтитров смещаются раньше на временной шкале видео.
Оригинальная векторная иллюстрация ToolAcre

Если все субтитры опаздывают или опережают на одну и ту же величину, исправлением является арифметика тайм-кода. В этом посте объясняется, как повторное время смещает начало и конец каждого сигнала, что происходит в нулевой точке и как в первую очередь измерить смещение.

Каждая подпись появляется через две секунды после говорящего — симптом, возникающий при постоянном смещении.

Когда каждый заголовок появляется примерно через две секунды после соответствующей произнесенной строки, перемещение блоков реплик по отдельности не требуется. Постоянное смещение применяет одну и ту же арифметику к каждому сигналу. Тот факт, что он постоянен, является диагнозом: если субтитры начинаются правильно и отходят дальше в течение сорока минут, изменение масштаба или коррекция частоты кадров — это другая операция. Прежде чем прикасаться ко всему файлу, проверьте начало, середину и конец.

Измерение смещения — пауза на первой четкой строке диалога и сравнение видеосигнала со временем начала реплики.

Сделайте паузу на одной строке четкого диалога и запишите время начала видео. Сравните его с первым совпадающим временем начала субтитров. Если звук начинается с 00:01:10.000, а субтитры — с 00:01:11.850, сигналы задерживаются на 1,850 миллисекунды, поэтому корректировка составляет −1,850 ms. Вторая контрольная точка позже в видео проверяет, сохраняется ли та же разница. Смещение происходит от наблюдения за вашей записью; инструмент не может вывести его из несвязанных слов.

Арифметика тайм-кода — преобразование ЧЧ:ММ:СС,ммм в миллисекунды, добавление смещения, обратное преобразование.

SRT выражает сигнал как ЧЧ:ММ:СС,ммм; WebVTT обычно использует точку перед миллисекундами. Преобразуйте компоненты в миллисекунды с помощью (((часы×60+минуты)×60+секунды)×1000)+миллисы. Добавьте выбранное смещение один раз, затем разложите результат обратно на часы, минуты, секунды и три цифры миллисекунд. Сохранение времени в целых числах позволяет избежать серии ошибок округления с плавающей запятой при обработке сотен сигналов. Анализатор и сериализатор выбирают знаки пунктуации, специфичные для формата, после арифметических действий.

Сдвиг обеих границ метки сохраняет длительность, за исключением случаев, когда она зафиксирована на нуле.

Для обычных реплик к началу и концу добавляется одинаковое смещение: заголовок от 02:00.000 до 02:03.500 длится 3.5 секунд до и после смещения. Изменение только начала растянет его; изменение только конца сожмет его. ShiftCues ToolAcre сопоставляется с проанализированными репликами и обновляет оба значения без переписывания текста подписи, поэтому знаки пунктуации или метки говорящего остаются прикрепленными к одной и той же реплике. Проверьте первую и последующие строки, чтобы убедиться, что выбранная вами операция — это сдвиг, а не масштабирование частоты кадров.

Зажим на нуле — что происходит с репликами, которые двигались бы до начала видео и почему у них не может быть отрицательного времени

Отрицательные временные метки не являются допустимым временем субтитров. ToolAcre фиксирует начало или конец, который пересекает ноль обратно в ноль, и сообщает, сколько сигналов было затронуто. Это важное исключение из сохранения длительности: сигнал, первоначально длившийся 0.8–2.8 секунд, сдвинутый на −1.85 секунд, имеет отрицательное начало и конец 0.95 секунд, поэтому его продолжительность больше не составляет две секунды. Более ранний сигнал мог бы зафиксировать оба конца до нуля. Просмотрите или удалите фиксированные вступительные реплики, а не заявляйте, что результат точен в самом начале.

Рабочий пример: сдвиг титров лекции продолжительностью 40 на -1,850 ms — до и после реплик, проверено в начале, середине и конце

Для сорокаминутной лекции рассмотрите сигналы 00:10.000–00:12.400 и 20:15.000–20:17.000. Сдвиг −1,850 ms дает 00:08.150–00:10.550 и 20:13.150–20:15.150. Последняя реплика на 39:55.000 также перемещается на 1.85 секунд раньше: расстояние от диалога должно оставаться постоянным на всех трех контрольных точках. Если конечный сигнал все еще не синхронизирован на много секунд, в то время как первый правильный, отмените изменение и вместо этого исследуйте смещение.

Чего это не касается — растущего со временем дрейфа, который фиксированное смещение не может исправить.

Фиксированное смещение не может решить проблему со звуковой дорожкой, отредактированной с другой скоростью, с вырезом видео с пропущенными кадрами, с преобразованием переменной частоты кадров или с субтитрами, согласованными с другим выпуском. Он также не может восстановить диалог, отсутствующий в файле субтитров. Преобразование форматирования между SRT и VTT — это отдельная операция; Не следует предполагать, что изменение времени переводит слова или улучшает описания доступности. Сохраняйте исходный файл до тех пор, пока человек не просмотрит репрезентативные реплики к видео.

Вывод: измерьте один раз, сместите все — как функция повторного измерения времени в Subtitle Toolkit применяет смещение к каждой реплике в файле

Измерьте постоянную разницу один раз, примените ее к каждому началу и концу и обратите особое внимание на сигналы, пересекающие ноль. Subtitle Toolkit выполняет синтаксический анализ и запись в миллисекундах локально, поэтому текст подписи не загружается. Ценная проверка не в том, что загрузка завершена; дело в том, что первая, средняя и последняя произнесенные строки теперь соответствуют своим репликам.