tooly

Конвертировать SRT в VTT и обратно

Вставьте субтитры в любом из распространённых форматов и получите нужный — SRT для плееров и YouTube, VTT для видео HTML5, обычный текст для расшифровки. Не совпадают тайминги? Сдвиньте все реплики на фиксированное значение.

Всё работает в браузере — данные никуда не отправляются

Как пользоваться

  1. 1

    Вставьте субтитры — SRT или VTT, подойдёт любой.

  2. 2

    Выберите формат вывода и сдвиньте тайминги, если они спешат или отстают.

  3. 3

    Скопируйте результат или скачайте его файлом.

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

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

SRT (SubRip) появился около 2000 года в программе для риппинга под Windows и стал стандартом де-факто, потому что это обычный текст, который может отредактировать кто угодно. Каждая реплика начинается с порядкового номера, в таймингах перед миллисекундами стоит запятая, а заголовка нет:

  • 1
  • 00:01:02,500 --> 00:01:05,000
  • Where were you last night?

WebVTT создавался для элемента HTML5 <track>. Файл обязан начинаться с WEBVTT, в таймингах используется точка (00:01:02.500), номера реплик необязательны, а реплики могут нести настройки позиции, выравнивания и строки, плюс блоки стилей. Браузеры загружают в элемент <track> только VTT; SRT-файл там просто ничего не покажет.

Где какой формат ожидают:

  • SRT: десктопные плееры, видеоредакторы, большинство форм загрузки на видеоплатформы, медиаплееры телевизоров, читающие файлы с флешки.
  • VTT: субтитры на вашем собственном сайте, плееры HTML5 и многие веб-платформы для онлайн-курсов.
  • Обычный текст: чтобы читать, цитировать или редактировать слова без таймингов.

Что конвертация сохраняет и что отбрасывает

Вы вставляете субтитры в поле, и результат обновляется прямо по мере ввода. Парсер делит текст на блоки по пустым строкам, находит в каждом блоке строку с -->, читает две отметки времени и считает всё после этой строки текстом реплики. Номера реплик для SRT строятся заново, поэтому файл с пропусками или повторами номеров выходит пронумерованным 1, 2, 3 по порядку.

Некоторые подробности:

  • Переводы строк Windows и метка порядка байтов в начале файла обрабатываются.
  • Блоки без строки тайминга, например блоки VTT NOTE и STYLE, пропускаются.
  • Настройки реплик VTT, записанные после времени конца (align:start, position:10%), не переносятся.
  • Отметки времени VTT без часов (00:01.500) тоже читаются.
  • Текст реплик копируется как есть, вместе с переносами строк. <i>, <b> и <u> работают в обоих форматах и сохраняются; цветовые теги SRT <font> при конвертации в VTT удаляются, потому что плееры VTT показали бы их как текст.
  • В обычном тексте каждая реплика занимает одну строку: многострочные реплики склеиваются через пробел, а все теги удаляются.

Счётчик рядом с настройками показывает, сколько реплик распознано. Если меньше, чем вы ожидали, посмотрите на пропавшие блоки: обычно причина — некорректная строка тайминга.

Как исправить рассинхрон субтитров

Поле «Сдвинуть тайминги» сдвигает все реплики на одинаковое число секунд, с шагом всего 0,1. Положительное значение задерживает субтитры, отрицательное — заставляет их появляться раньше. Реплики, которые ушли бы раньше нуля, прижимаются к 00:00:00.

Надёжный способ найти правильный сдвиг:

  1. Включите видео и отметьте время, когда звучит какая-нибудь запоминающаяся фраза, скажем 00:12:40.
  2. Найдите эту фразу в файле субтитров — скажем, у неё тайминг 00:12:43.
  3. Субтитры опаздывают на 3 секунды, значит, введите -3.
  4. Проверьте вторую фразу ближе к концу видео.

Если сдвиг в конце отличается от сдвига в начале, проблема не в задержке, а в дрейфе. Обычно так бывает, когда субтитры для релиза с 23,976 кадра/с воспроизводят с релизом на 25 кадров/с: расхождение растёт примерно на 4% за фильм — около 4 минут на 100 минутах. Постоянным сдвигом дрейф не исправить; нужны субтитры, сделанные именно под эту версию видео.

Практические советы

  • Чтобы сконвертировать файл, откройте его в любом текстовом редакторе, выделите всё, скопируйте и вставьте сюда. Кнопка скачивания сохраняет результат как subtitles.srt, subtitles.vtt или subtitles.txt; переименуйте его под имя видеофайла, если ваш плеер подхватывает субтитры автоматически.
  • Чтобы локальный плеер сам подхватил субтитры, имена обычно должны совпадать: holiday.mp4 и holiday.srt в одной папке.
  • Если при открытии старого SRT-файла буквы с диакритикой или кириллица превращаются в кракозябры, файл сохранён в устаревшей кодировке. Переоткройте его в редакторе с правильной кодировкой перед копированием, а сконвертированный файл сохраните в UTF-8.
  • Субтитров ещё нет? Создайте их из звуковой дорожки инструментом «Транскрибировать видео в текст» или впишите прямо в картинку с помощью «Добавить субтитры в видео».

Вопросы и ответы

В чём разница между SRT и VTT?

В основном в заголовке и десятичном разделителе. SRT нумерует каждую реплику и использует запятую в таймкодах; VTT начинается с WEBVTT и использует точку. Плееры разборчивы в том, какой формат принимают.

Как исправить субтитры, которые опережают видео?

Задайте отрицательный сдвиг. Если текст появляется на две секунды раньше, введите -2, и все реплики сдвинутся назад.

Файл загружается на сервер?

Нет. Разбор и конвертация происходят прямо в браузере.

Сохраняются ли стили и позиционирование?

Текст реплик и тайминги сохраняются, как и теги <i>, <b> и <u> — их поддерживают оба формата. Настройки позиционирования VTT отбрасываются, а цветовые теги <font> из SRT удаляются при конвертации в VTT; в обычном тексте тегов нет вовсе.

Где вообще взять субтитры?

Прогоните видео через наш инструмент расшифровки и выберите SRT или VTT в качестве результата.

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