Два формата, которые выглядят почти одинаково
SRT и WebVTT несут одну и ту же информацию: список реплик, у каждой — время начала, время конца и одна или несколько строк текста. Различия мелкие, но строгие, и плееры отказываются принимать файл именно из-за них.
SRT (SubRip) появился около 2000 года в программе для риппинга под Windows и стал стандартом де-факто, потому что это обычный текст, который может отредактировать кто угодно. Каждая реплика начинается с порядкового номера, в таймингах перед миллисекундами стоит запятая, а заголовка нет:
100:01:02,500 --> 00:01:05,000Where 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.
Надёжный способ найти правильный сдвиг:
- Включите видео и отметьте время, когда звучит какая-нибудь запоминающаяся фраза, скажем 00:12:40.
- Найдите эту фразу в файле субтитров — скажем, у неё тайминг 00:12:43.
- Субтитры опаздывают на 3 секунды, значит, введите -3.
- Проверьте вторую фразу ближе к концу видео.
Если сдвиг в конце отличается от сдвига в начале, проблема не в задержке, а в дрейфе. Обычно так бывает, когда субтитры для релиза с 23,976 кадра/с воспроизводят с релизом на 25 кадров/с: расхождение растёт примерно на 4% за фильм — около 4 минут на 100 минутах. Постоянным сдвигом дрейф не исправить; нужны субтитры, сделанные именно под эту версию видео.
Практические советы
- Чтобы сконвертировать файл, откройте его в любом текстовом редакторе, выделите всё, скопируйте и вставьте сюда. Кнопка скачивания сохраняет результат как
subtitles.srt,subtitles.vttилиsubtitles.txt; переименуйте его под имя видеофайла, если ваш плеер подхватывает субтитры автоматически. - Чтобы локальный плеер сам подхватил субтитры, имена обычно должны совпадать:
holiday.mp4иholiday.srtв одной папке. - Если при открытии старого SRT-файла буквы с диакритикой или кириллица превращаются в кракозябры, файл сохранён в устаревшей кодировке. Переоткройте его в редакторе с правильной кодировкой перед копированием, а сконвертированный файл сохраните в UTF-8.
- Субтитров ещё нет? Создайте их из звуковой дорожки инструментом «Транскрибировать видео в текст» или впишите прямо в картинку с помощью «Добавить субтитры в видео».