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

Найти пересекающиеся субтитры

Проверка качестваПересекающиеся реплики
Или вставьте текст субтитров

Параметры

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

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

Смотреть стоит на общие миллисекунды: 400 мс читаются как мигание, а несколько секунд обычно означают, что реплику вставили не туда. Отчёт говорит и о том, чего проверить не удалось: формат без времени окончания измерить нельзя вовсе, а реплика, у которой конец не позже начала, исправляется при чтении, и эта правка стоит в шапке отчёта — «проверено, ничего не найдено» и «проверить невозможно» остаются двумя разными фразами.

Примеры

Две реплики на одной секунде

Субтитры

1
00:00:01,000 --> 00:00:04,000
First line.

2
00:00:03,000 --> 00:00:06,000
Second line, starting early.

Что находит отчёт

Overlapping cues — 1 found

Severity   Cues   Start          End            Measured
Error      1, 2   00:00:03.000   00:00:04.000   1000 ms

Вторая реплика начинается, пока первая ещё на экране. Измеренное значение — общий отрезок, то есть конец первой реплики минус начало второй, а не длина какой-либо из них.

Соприкасающиеся реплики не пересекаются

Субтитры

1
00:00:01,000 --> 00:00:02,000
First line.

2
00:00:02,000 --> 00:00:03,000
Second line, touching.

Что находит отчёт

Overlapping cues — Nothing found

Checks run   1
Cues         2

Вторая реплика начинается ровно в ту миллисекунду, когда кончается первая. Это правильный тайминг, поэтому находок нет, но отчёт всё равно сообщает, что проверка выполнялась, — это не то же самое, что файл, который проверить не удалось.

Реплика внутри длинной

Субтитры

1
00:00:00,000 --> 00:00:10,000
Long opening line.

2
00:00:01,000 --> 00:00:02,000
Nested inside it.

3
00:00:03,000 --> 00:00:04,000
Also nested inside it.

Что находит отчёт

Overlapping cues — 2 found

Severity   Cues   Start          End            Measured
Error      1, 2   00:00:01.000   00:00:02.000   1000 ms
Error      1, 3   00:00:03.000   00:00:04.000   1000 ms

Обе короткие реплики пересекаются с длинной и не пересекаются друг с другом. Каждое сравнение идёт с самым дальним достигнутым концом, поэтому вторая короткая реплика тоже попадает в отчёт, хотя реплика непосредственно перед ней до неё не дотягивается.

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

Что именно считается пересечением субтитров на этой странице?

Реплика, начало которой раньше самого дальнего уже достигнутого конца в файле. Реплики, которые лишь соприкасаются — одна кончается в 00:00:04,000, следующая начинается в 00:00:04,000, — пересечением не считаются и в отчёт не попадают. Пересечение в одну миллисекунду попадает, потому что оно есть.

Меняет ли этот инструмент мой файл субтитров?

Нет. Файл читается, на выходе получается отчёт, и ни один таймкод не переписывается. Удаление пересечений — отдельный инструмент, и разделение проверки и исправления означает, что отчёт, который вы отдаёте заказчику, описывает исходный файл, а не версию, уже отредактированную этой страницей.

Как вычисляется величина пересечения?

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

В каких форматах субтитров можно искать пересечения?

В десяти, где хранятся и начало, и конец: SRT, WebVTT, ASS, SSA, SBV, SMI, MicroDVD, TTML, JSON и CSV. LRC и обычный текст в список не входят: там одно время на строку, сравнивать нечего, поэтому такой файл сначала нужно конвертировать.

Что лежит в отчёте, который я скачиваю?

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

Почему файл с пересечениями проигрывается так, будто всё в порядке?

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

Можно проверить целый сезон за один раз?

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

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