Перейти к основному содержимому
SubtitleMatrix

Сдвинуть субтитры на кадры

ТаймингСдвиг на фиксированное смещение
Или вставьте текст субтитров

Параметры

Целое число кадров, пересчитанное через частоту кадров ниже. Используйте, когда источник — MicroDVD .sub или когда в заметке, с которой вы работаете, считают кадры, а не секунды.

В какой частоте кадров считается тайминг. На страницах форматов это то, что нужно MicroDVD: он хранит время в номерах кадров. На страницах частоты кадров это частота, по которой файл был рассчитан, — версия, для которой делались субтитры, — а второе поле страницы принимает частоту видео, с которым вы будете их использовать. Обычные значения: 23,976, 24, 25, 29,97, 30, 50, 59,94 и 60. Ошибка сдвигает весь таймлайн, а на страницах частоты кадров — на коэффициент, а не на фиксированную величину.

Эта страница сдвигает файл субтитров на заданное число кадров: двенадцать кадров и частота кадров дают точное смещение, и оба края каждой реплики едут вместе, поэтому длина не меняется. Частота кадров здесь — половина операции, а не свойство файла: кадры становятся миллисекундами делением на частоту и умножением на тысячу, поэтому двенадцать кадров — это 480 мс при 25 fps, 500 мс при 24 и 500,5 мс при 23,976.

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

У начала файла действуют те же правила: начало, уехавшее раньше нуля, прижимается к 00:00:00 и реплика становится короче, а реплика, чей конец оказался в нуле или раньше, удаляется. Принимаются SRT, WebVTT, ASS, SSA, SBV, SMI, MicroDVD, TTML, JSON и CSV, смещение считается в браузере, файлы никуда не отправляются, и очередь берёт сезон за один проход.

Примеры

Двенадцать кадров при 25 fps

Вход

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,480 --> 00:00:03,480
Hello there.

2
00:00:05,980 --> 00:00:08,480
Second line.

Двенадцать кадров при 25 fps — это 480 мс. Целая частота даёт целый результат, поэтому этот случай проще всего сверить с таймлайном, с которого сняты кадры.

Те же двенадцать кадров при 23,976 fps

Вход

1
00:00:01,000 --> 00:00:03,000
Twenty-three point nine seven six.

Выход

1
00:00:01,501 --> 00:00:03,501
Twenty-three point nine seven six.

500,5 мс один раз округляется до 501 ещё до применения смещения, поэтому ни одна реплика не остаётся с половиной миллисекунды.

Отрицательное число кадров

Вход

1
00:00:00,200 --> 00:00:02,000
Starts almost immediately.

2
00:00:05,000 --> 00:00:06,000
Later.

Выход

1
00:00:00,000 --> 00:00:01,600
Starts almost immediately.

2
00:00:04,600 --> 00:00:05,600
Later.

Минус десять кадров при 25 fps — это 400 мс раньше. Первая реплика началась бы на 200 мс раньше нуля, поэтому её начало прижимается к нулю, а конец едет на все 400 мс.

Частые вопросы

Почему этой странице нужна частота кадров, а странице миллисекунд — нет?

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

Какую частоту кадров выбрать для фильма 23,976 fps?

23,976, а не 24. На коротком смещении разница прячется, но двенадцать кадров дают 500 мс при одной частоте и 500,5 мс при другой, и на глаз это неотличимо. Для файла MicroDVD, где частота пересчитывает всю шкалу из кадров, ошибка в частоте растёт вместе с длиной фильма.

Может ли сдвиг в кадрах попасть между двумя миллисекундами?

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

Обязательно ли целое число кадров?

Да, поле принимает только целые. Полкадра — не позиция, на которую плеер умеет встать, а приём дробного значения означал бы тихое округление за вас; лучше, чтобы введённое и использованное совпадали.

Что будет, если оставить поле частоты кадров пустым?

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

Откуда берётся частота кадров, если файл MicroDVD объявляет её сам?

Порядок такой: значение в поле на странице, затем объявление в первой строке MicroDVD .sub, затем 25 fps по умолчанию. Использование значения по умолчанию записывается в отчёт как потеря, потому что файл не сказал, по какой частоте его считали.

Похожие инструменты