Русский

Набор инструментов для субтитров

Конвертируйте, изменяйте время и очищайте файлы субтитров SRT и VTT в вашем браузере.

Два формата, которые выглядят почти одинаково

SubRip (.srt) появился из программы копирования DVD в начале 2000-х годов и почти случайно стал форматом субтитров по умолчанию. WebVTT (.vtt) был разработан позже, специально для видео HTML5, и это то, что браузер ожидает, когда вы прикрепляете элемент дорожки к видео.

Они выглядят настолько похожими, что люди считают, что достаточно переименовать файл. Это не так, и ошибка остается молчаливой: браузер, передавший файл SRT, переименованный в .vtt, обычно вообще ничего не отображает, без объяснения причин ошибки.

Три реальных различия

Во-первых, заголовок. Файл WebVTT должен начинаться с буквального слова WEBVTT в первой строке. Файл SRT не имеет заголовка и начинается непосредственно с первого фрагмента. Эта единственная пропущенная строка является наиболее распространенной причиной того, что преобразованный файл не работает в браузере.

Во-вторых, разделитель миллисекунд. SRT записывает 00:00:01,500 через запятую. WebVTT записывает 00:00:01.500 с точкой. Игрок, ожидающий одного и получивший другое, обычно отклоняет кий.

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

Есть и более мелкие различия: WebVTT позволяет опускать компонент часов, поэтому 01:30.000 означает девяносто секунд, и поддерживает настройки позиционирования после метки времени, такие как line:90% align:center. Этот инструмент считывает все это и сохраняет настройки сигнала при преобразовании в VTT.

Преобразование файла

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

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

  1. Выберите файл .srt или .vtt.
  2. Проверьте количество сигналов и сводку проверки.
  3. Исправьте все обнаруженные проблемы или очистите теги форматирования, если вам нужен простой текст.
  4. Загрузите как SRT или VTT.

Валидация

Каждый файл проверяется при загрузке, и результаты отображаются над предварительным просмотром. В каждом сообщении указывается конкретный номер сигнала, поскольку фраза «этот файл недействителен» бесполезна, когда в файле девятьсот сигналов.

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

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

Удаление форматирования

Файлы субтитров часто содержат разметку: теги типа HTML, такие как <i> и <b>, класс WebVTT и голосовые теги, такие как <c.loud> и <v Speaker>, а также переопределяющие блоки SubStation, такие как {\an8}, которые управляют позиционированием.

Кнопка «Удалить теги форматирования» удаляет все это, сохраняя при этом разрывы строк внутри каждой реплики, что важно для читаемости. Символьные сущности, такие как &amp;, намеренно оставлены в покое, поскольку они представляют собой контент, а не форматирование.

Прежде чем исправлять, диагностируйте

Рассинхронизированные субтитры бывают двух разных разновидностей, и неправильное исправление только усугубляет ситуацию. Прежде чем прикасаться к чему-либо, потратьте тридцать секунд на диагностику.

CONSTANT OFFSET означает, что субтитры везде неправильные. Проверьте строку в начале и строку в конце. Если оба опоздали примерно на две секунды, вам нужна смена.

DRIFT означает, что ошибка увеличивается по мере воспроизведения видео. Если первая строка почти правильная, но последняя строка отстает на сорок секунд, сдвиг не поможет — нужно масштабироваться. Дрейф почти всегда возникает из-за несоответствия частоты кадров: субтитры были синхронизированы с частотой 23.976 кадров в секунду, а ваше видео воспроизводится со скоростью 25 кадров в секунду, или наоборот.

  1. Обратите внимание, как далеко от линии рядом с START.
  2. Обратите внимание, как далеко от линии рядом с END.
  3. Если две ошибки похожи, используйте Shift.
  4. Если ошибка растет, используйте Scale.

Переключение

Введите смещение в миллисекундах. Положительное число приводит к задержке субтитров, что и нужно, когда они появляются слишком рано. Отрицательное число перемещает их раньше для субтитров, отстающих от диалога.

Измерьте ошибку, а не гадайте. Запишите временную метку, где фраза фактически была произнесена, и временную метку, где она появляется в данный момент, а затем используйте разницу. Две секунды — это 2000 ms.

Временные метки фиксируются на нуле. Ни SRT, ни WebVTT не могут представлять отрицательное время, и игрок, получивший такой сигнал, обычно отклоняет сигнал или ведет себя непредсказуемо. Таким образом, если вы сдвинете файл назад более чем на время начала первого сигнала, затронутые сигналы будут закреплены за 00:00:00, а не станут отрицательными - и инструмент точно сообщит вам, со сколькими вызовами это произошло. Если вы видите это предупреждение, возможно, ваше смещение слишком велико.

Масштабирование для изменения частоты кадров

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

Фактором является соотношение частот кадров. Преобразование субтитров, рассчитанных на 23.976 кадров в секунду, в видео 25 кадров в секунду означает умножение на 25 ÷ 23.976, примерно 1.0427. В противном случае используйте 23.976 ÷ 25, примерно 0.959.

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

Объединение двух файлов

Объединение предназначено для материалов, которые были частично снабжены субтитрами — например, две половины фильма выпущены как отдельные файлы.

Сначала загрузите основной файл, затем выберите второй файл на панели слияния и задайте для него смещение. Смещение — это место начала второй части на объединенной временной шкале: если первая часть длится 58 минут и 20 секунд, смещение равно 3,500,000 ms.

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

Разделение одного файла

Разделение делает обратный процесс: один файл разделяется по выбранной вами временной метке.

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

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

Часто задаваемые вопросы

Могу ли я просто переименовать файл .srt в .vtt?
Нет. Файл WebVTT должен начинаться со строки заголовка WEBVTT и перед миллисекундами должен использоваться точка, а не запятая. Переименование ничего не меняет, и обычным результатом является видео, в котором вообще нет субтитров и нет видимых ошибок.
Загружены ли мои файлы субтитров?
Нет. Все анализируется и переписывается в вашем браузере. Это имеет большее значение, чем обычно, для субтитров, которые часто содержат неизданные диалоги под эмбарго — поэтому серверная составляющая здесь намеренно вообще отсутствует.
Теряет ли преобразование качество или точность?
Нет. Тайминги хранятся внутри в виде целых миллисекунд, которые оба формата выражают точно, поэтому преобразование SRT в VTT и обратно точно возвращает исходные тайминги.
Этот инструмент транскрибирует или переводит субтитры?
Нет, и не будет. Транскрипция и перевод явно выходят за рамки. Этот инструмент преобразует только файлы субтитров, которые у вас уже есть.
Что происходит с настройками позиционирования сигнала?
Настройки сигнала WebVTT, такие как line:90% align:center, сохраняются при экспорте в VTT. У них нет эквивалента в SRT, и они удаляются при экспорте в этот формат, поскольку SRT не имеет возможности их выразить.
Почему мои реплики были перенумерованы?
Потому что непрерывная нумерация от 1 — это то, чего ожидают игроки, а файлы, отредактированные вручную, часто имеют пробелы или дубликаты. Перенумерация является частью очистки файла.

Чего этот инструмент не сделает