Сдвинуть время окончания
Или вставьте текст субтитров
Параметры
На сколько миллисекунд сдвинуть каждую реплику. Положительное число сдвигает субтитры позже, отрицательное — раньше. Ноль допустим: файл возвращается без изменений, это быстрый способ убедиться, что он уже стоит где нужно.
Начало двигает только время открытия и оставляет время закрытия на месте, поэтому сдвиг вперёд укорачивает каждую реплику, а назад — удлиняет. Конец делает наоборот. Выберите начало, когда субтитры появляются не вовремя, но заканчиваются правильно; конец — когда появляются правильно, а затем задерживаются или исчезают слишком рано.
В какой частоте кадров считается тайминг. На страницах форматов это то, что нужно MicroDVD: он хранит время в номерах кадров. На страницах частоты кадров это частота, по которой файл был рассчитан, — версия, для которой делались субтитры, — а второе поле страницы принимает частоту видео, с которым вы будете их использовать. Обычные значения: 23,976, 24, 25, 29,97, 30, 50, 59,94 и 60. Ошибка сдвигает весь таймлайн, а на страницах частоты кадров — на коэффициент, а не на фиксированную величину.
Эта страница двигает только время окончания каждой реплики: субтитр появляется там же, где и раньше, а исчезает в другой момент — положительное смещение продлевает показ, отрицательное снимает субтитр с экрана раньше. Из-за этого меняется длина каждой реплики, ведь начало осталось на месте, а конец уехал; в отличие от сдвига всего файла, где оба края едут вместе и длины не меняются, здесь лечится именно «висит слишком долго» или «пропадает на полуслове».
Одно исключение считается, а не скрывается: если конец оказался бы на начале собственной реплики или раньше, реплика удаляется целиком — прижать конец к началу значило бы записать в файл реплику нулевой длины, а это удаление под другим названием.
Форматы те же десять — SRT, WebVTT, ASS, SSA, SBV, SMI, MicroDVD, TTML, JSON и CSV, — они читаются по содержимому, а обычный текст и LRC отклоняются, потому что не хранят время окончания вовсе. Смещение считается в браузере, файлы никуда не отправляются, а очередь берёт целый сезон за один проход.
Примеры
Продлить каждый субтитр на полсекунды
Вход
1
00:00:01,000 --> 00:00:03,000
Hello there.
2
00:00:05,500 --> 00:00:08,000
Second line.
Выход
1
00:00:01,000 --> 00:00:03,500
Hello there.
2
00:00:05,500 --> 00:00:08,500
Second line.
Каждое время окончания едет на 500 мс позже, а начало остаётся на месте, поэтому первая реплика проводит на экране 2500 мс вместо 2000, а вторая — 3000 вместо 2500.
Короткая реплика, у которой конец уходит за начало
Вход
1
00:00:01,000 --> 00:00:01,200
A short one.
2
00:00:05,000 --> 00:00:08,000
A long one.
Выход
2
00:00:05,000 --> 00:00:07,500
A long one.
Первая реплика длится всего 200 мс, поэтому сдвиг на 500 мс закончил бы её на 300 мс раньше начала. Она удаляется и считается, а уцелевшая сохраняет номер 2.
Обрезать хвосты у всех субтитров
Вход
1
00:00:01,000 --> 00:00:03,000
Hello there.
Выход
1
00:00:01,000 --> 00:00:02,400
Hello there.
Отрицательное смещение укорачивает каждую реплику. Обычно так исправляют субтитры, которые висят заметно дольше конца фразы и из-за этого отстают от звука.
Частые вопросы
Чем сдвиг времени окончания отличается от сдвига времени начала?
Страницы меняют противоположные края и лечат противоположные симптомы. Здесь начало реплики остаётся, а конец едет: это нужно, когда субтитр висит после конца фразы или обрывается раньше. На странице начал конец остаётся, а начало едет — это про «появился не вовремя».
Уменьшает ли сдвиг конца паузу между двумя субтитрами?
Да, и это стоит держать в голове: следующая реплика начинается там же, где начиналась, поэтому каждая съедает часть паузы после себя. Достаточно большое смещение сведёт паузу к нулю или создаст пересечение — эта страница честно его создаст, потому что удаление пересечений — отдельная работа.
Есть ли нижний предел, до которого можно оттянуть время окончания?
Фиксированного предела, как ноль на странице начал, нет: конец может стоять где угодно, пока не дойдёт до начала собственной реплики, и там она удаляется, а не прижимается. Прижатие дало бы реплику без времени на экране — этого никто не просил и этого не увидит зритель.
Что происходит с репликой, конец которой оказался раньше её начала?
Она удаляется, и её число попадает в счётчик рядом с остальными изменениями. Перенумерации после этого нет: соседние реплики сохраняют свои номера, и пропуск в нумерации — единственный видимый след того, что пропало.
Какие форматы субтитров читает страница при сдвиге концов?
SRT, WebVTT, ASS, SSA, SBV, SMI, MicroDVD, TTML, JSON и CSV — каждый по своему содержимому, а не по расширению. Обычный текст и LRC отклоняются: в них нет времени окончания, двигать нечего, и результат был бы побайтно равен входу.
По какому признаку понять, что двигать нужно именно концы?
Если вы читаете вместе со звуком и слова стоят на месте, а субтитр остаётся на экране после конца фразы, длительность велика и конец нужно отодвинуть положительным смещением. Если субтитр исчезает, пока слово ещё звучит, конец ранний и нужен отрицательный сдвиг — начало при этом не трогается.