Задать минимальный пробел
Или вставьте текст субтитров
Параметры
Сколько миллисекунд пустого экрана оставлять между концом одной реплики и началом следующей. 80 мс — это два кадра при 25 fps, этого достаточно, чтобы две реплики не читались как одна; вещатели часто требуют несколько кадров. Если пара ближе, более ранняя реплика укорачивается, чтобы открыть промежуток, — но никогда короче одной миллисекунды, а пара, которую нельзя разделить на полную величину, попадает в отчёт, а не раздвигается силой.
У промежутка между двумя репликами два края: конец более ранней и начало более поздней. Конец двигает конец ранней реплики, поэтому закрытие промежутка удлиняет её, а расширение укорачивает; поздняя реплика сохраняет тайминг с точностью до миллисекунды. Начало двигает начало поздней реплики и оставляет раннюю в покое. Выберите тот, чьему таймингу доверяете больше, — обычно реплику, чей текст произносится последним, потому что реплика не должна появляться раньше, чем звучит её строка.
В какой частоте кадров считается тайминг. На страницах форматов это то, что нужно MicroDVD: он хранит время в номерах кадров. На страницах частоты кадров это частота, по которой файл был рассчитан, — версия, для которой делались субтитры, — а второе поле страницы принимает частоту видео, с которым вы будете их использовать. Обычные значения: 23,976, 24, 25, 29,97, 30, 50, 59,94 и 60. Ошибка сдвигает весь таймлайн, а на страницах частоты кадров — на коэффициент, а не на фиксированную величину.
Страница держит нижнюю границу пустого экрана: вы задаёте минимум в миллисекундах, и две реплики ближе этого значения раздвигаются. По умолчанию зазор равен 80 мс — это два кадра при 25 fps. При стратегии окончания предыдущий субтитр заканчивается раньше и отдаёт время, при стратегии начала позже начинается следующий; вторая граница каждой пары и все остальные реплики остаются нетронутыми. Зазор только увеличивается: пару, которая уже стоит шире лимита, страница не трогает, а реплика, которой не хватает длины, остаётся как есть и попадает в счётчик невыполненных. Текст и оформление не меняются, файл читается и записывается в браузере без отправки на сервер.
Примеры
Две реплики в десяти миллисекундах друг от друга
Вход
1
00:00:01,000 --> 00:00:02,000
First line.
2
00:00:02,010 --> 00:00:03,000
Second line.
3
00:00:03,400 --> 00:00:04,000
Third line.
Выход
1
00:00:01,000 --> 00:00:01,930
First line.
2
00:00:02,010 --> 00:00:03,000
Second line.
3
00:00:03,400 --> 00:00:04,000
Third line.
Первая пара стоит в 10 мс друг от друга, поэтому первая строка заканчивается в 1930 вместо 2000, и зазор становится ровно 80 мс. Вторая пара разнесена на 400 мс, это заметно больше минимума, и ни один из этих субтитров не двигается ни на миллисекунду. Во второй паре второй субтитр тоже остаётся нетронутым: время отдаёт только реплика слева от слишком узкого промежутка.
Зазор ровно 80 мс и зазор 79 мс
Вход
1
00:00:01,000 --> 00:00:02,000
First.
2
00:00:02,080 --> 00:00:02,500
Second.
3
00:00:02,579 --> 00:00:03,000
Third.
Выход
1
00:00:01,000 --> 00:00:02,000
First.
2
00:00:02,080 --> 00:00:02,499
Second.
3
00:00:02,579 --> 00:00:03,000
Third.
Минимум — это порог, а не цель: зазор ровно в 80 мс уже ему соответствует и остаётся как был, а зазору в 79 мс не хватает одной миллисекунды, и второй субтитр отдаёт ровно её. Обе стороны границы есть в одном файле, поэтому видно, что сравнение нестрогое; именно поэтому файл, где все промежутки стоят на числе, возвращается без изменений.
Двигается следующий субтитр
Вход
1
00:00:01,000 --> 00:00:02,000
First.
2
00:00:02,010 --> 00:00:03,000
Second.
Выход
1
00:00:01,000 --> 00:00:02,000
First.
2
00:00:02,080 --> 00:00:03,000
Second.
Та же пара, что в первом запуске, но выбрано начало: вторая строка теперь начинается в 2080 вместо 2010, а первый субтитр сохраняет каждую свою миллисекунду. Эти лишние 70 мс зритель видит как слегка запоздавшую вторую реплику — такова цена доверия к таймингу предыдущего субтитра.
Частые вопросы
Откуда берётся минимальный зазор 80 мс по умолчанию?
Это два кадра при 25 fps. Ниже примерно такого значения промежуток между двумя субтитрами читается большинством зрителей как один двухстрочный субтитр, а не как передача реплики, — именно эту путаницу и убирает минимальный зазор. Если требование задано в кадрах, поставьте в поле частоты кадров частоту проекта и пересчитайте: при 24 fps четыре кадра дают 167 мс, при 29,97 два кадра — 67 мс.
Можно ли на этой странице одновременно заполнять и раздвигать промежутки?
Нет, и это сделано намеренно. Страница только увеличивает промежутки: пара, которая уже разнесена шире вашего числа, остаётся ровно как была. Требовать одновременно не больше N и не меньше N противоречиво, поэтому две операции живут на разных страницах, и файл совпадает только тогда, когда он уже удовлетворяет обоим условиям.
Что происходит, если субтитр слишком короткий и не может отдать зазор?
Он остаётся как есть, а пара так и остаётся ближе запрошенного. Субтитр длиной 1 мс не может отдать 80 мс, а сжатие до нуля дало бы реплику, которую плеер не нарисует, — это хуже тесного промежутка. Страница честно считает такие случаи невыполненными, а не подгоняет число любой ценой.
Почему при минимальном зазоре укорачивается именно предыдущая реплика?
Потому что дать строке уйти с экрана чуть раньше безопаснее, чем заставить следующую появиться позже. При окончании, а это значение по умолчанию, каждое произнесённое слово всё ещё покрыто своим субтитром, обрезается только хвост. Начало сдвигает всю следующую реплику вперёд, и её первое слово появляется на экране после того, как прозвучало; оба варианта нужны, но безопасный стоит по умолчанию.
Влияет ли частота кадров MicroDVD на минимальный зазор?
Она меняет запись файла, а не саму операцию. MicroDVD хранит номера кадров вместо времени, поэтому поле частоты кадров переводит 1000 мс в номер кадра при чтении и обратно при записи. На этом формате зазор, не кратный целому кадру, округляется до ближайшего, а при 25 fps 80 мс — это ровно два кадра, так что значение по умолчанию попадает точно.
Может ли минимальный зазор создать пересечение субтитров?
Нет. Конец предыдущей реплики двигается только назад, поэтому худший случай — субтитр, который отдал всё время и остановился на собственном начале; он не заходит в слот следующей реплики и не создаёт наложения. Файл, в котором пересечения уже есть, в этих местах не меняется: у пересекающейся пары нет промежутка, который можно расширить.