Чтобы конвертировать SRT в VTT, недостаточно изменить расширение файла. Нужно добавить заголовок WEBVTT, заменить запятые в тайм-кодах точками и сохранить документ в кодировке UTF-8.
Быстрее всего сделать это в редакторе субтитров, а небольшой файл можно поправить и вручную. Если вы ещё выбираете формат, сначала прочитайте сравнение SRT или VTT: какой формат выбрать.
Как конвертировать SRT в VTT в Captions Space
Готовый файл конвертируется в редакторе файлов субтитров. Он бесплатный, работает без регистрации, а файл не уходит на сервер — всё происходит в браузере.
- Откройте редактор файлов субтитров.
- Перетащите на страницу исходный SRT.
- Проверьте текст и временные границы реплик.
- При необходимости исправьте ошибки или сдвиньте всю дорожку.
- Выберите формат VTT и скачайте файл.
Редактор открывает SRT, VTT и ASS и сохраняет в любой из трёх форматов. Кодировка на выходе — UTF-8. Если исходный SRT был в Windows-1251 и вместо букв видны «кракозябры», редактор перекодирует его при открытии.
Конвертация не переводит текст на другой язык — она меняет только технический формат документа. Для перевода есть отдельная инструкция как перевести SRT-файл на другой язык.
Если субтитры создаются в Captions Space из видео, VTT выбирается прямо в окне экспорта
Если исходного SRT нет и субтитры ещё предстоит сделать, загрузите ролик в генератор субтитров: он распознает речь, а в окне экспорта можно сразу выбрать VTT. Файлы субтитров из проекта скачиваются на тарифах Lite и Pro или после покупки одного проекта за 149 ₽.
Как перевести SRT в VTT вручную
Создайте резервную копию и откройте SRT в текстовом редакторе — Блокноте, Notepad++ или Visual Studio Code.
1. Добавьте заголовок
Первая строка документа должна содержать WEBVTT. После неё оставьте пустую строку.
2. Измените тайм-коды
В SRT миллисекунды отделяются запятой: 00:00:01,000 --> 00:00:04,500. В VTT нужна точка: 00:00:01.000 --> 00:00:04.500.
При массовой замене следите, чтобы запятые не исчезли из текста самих реплик: заменяйте только запятую между секундами и миллисекундами.
3. Сохраните файл
Выберите кодировку UTF-8 и укажите имя с расширением .vtt, например subtitles-ru.vtt. WebVTT обязан использовать UTF-8 — это требование спецификации W3C.
Пример готового преобразования
Исходный SRT:
1
00:00:01,000 --> 00:00:04,200
Покажем, как преобразовать файл.
2
00:00:04,700 --> 00:00:07,500
Проверим текст и тайм-коды.
Результат в формате VTT:
WEBVTT
1
00:00:01.000 --> 00:00:04.200
Покажем, как преобразовать файл.
2
00:00:04.700 --> 00:00:07.500
Проверим текст и тайм-коды.
Числовые идентификаторы блоков можно оставить. Между соседними репликами должна быть пустая строка.
Как проверить VTT
WEBVTT в первой строке, точки в тайм-кодах, UTF-8 — и проверка в плеере
Не ограничивайтесь проверкой расширения. Откройте готовый документ и убедитесь, что:
- первая строка содержит
WEBVTT; - файл сохранён в UTF-8;
- в тайм-кодах используются точки;
- между блоками есть пустые строки;
- документ не получил расширение .vtt.txt;
- русский текст отображается правильно.
Затем откройте видео с новой дорожкой и проверьте первую, среднюю и последнюю реплики. Смена формата не исправляет ошибки синхронизации исходного SRT — если текст расходится с голосом, смотрите разбор субтитры не совпадают со звуком.
Как подключить VTT к видео на сайте
WebVTT подключается к HTML5-видео элементом <track>:
<video controls>
<source src="/video/example.mp4" type="video/mp4">
<track
kind="subtitles"
src="/subtitles/example-ru.vtt"
srclang="ru"
label="Русский"
default
>
</video>
Элемент <track> предназначен для синхронизированных текстовых дорожек HTML-видео (документация MDN).
Сервер должен отдавать VTT с MIME-типом text/vtt. Если дорожка не появляется, откройте прямую ссылку на файл и убедитесь, что сервер не возвращает вместо него страницу ошибки. Если файл лежит на другом домене, плееру понадобятся заголовки CORS и атрибут crossorigin у <video>.
Почему VTT не открывается
Наиболее частые причины:
- отсутствует строка
WEBVTT; - в тайм-кодах остались запятые;
- документ сохранён не в UTF-8;
- нарушены пустые строки между блоками;
- файл называется subtitles.vtt.txt;
- сервер передаёт неправильный MIME-тип;
- браузер показывает закешированную версию.
При повреждённой кириллице вернитесь к исходной копии, откройте её в правильной кодировке и только затем сохраните в UTF-8 — подробно в статье неправильно отображается SRT: кодировка и кракозябры.
Как конвертировать VTT в SRT
Блоки STYLE, REGION и NOTE уходят, текст и тайм-коды остаются
Для обратного преобразования откройте VTT в редакторе файлов субтитров и сохраните как SRT. При ручной конвертации:
- Удалите заголовок
WEBVTT. - Замените точки перед миллисекундами запятыми.
- Пронумеруйте реплики.
- Удалите неподдерживаемые блоки STYLE, REGION и NOTE.
- Сохраните документ с расширением .srt.
При конвертации VTT в SRT стили и параметры положения теряются — SRT их не хранит. Текст и временные границы реплик сохраняются. Если оформление нужно сохранить, используйте ASS: чем три формата отличаются, разобрано в статье SRT, VTT и ASS.
Частые вопросы
Можно ли просто изменить расширение SRT на VTT?
Нет. Переименование не добавит заголовок WEBVTT и не исправит формат тайм-кодов.
Нужно ли загружать видео?
Нет, для преобразования достаточно файла субтитров. Видео понадобится, чтобы проверить синхронизацию.
Изменится ли текст?
При обычной конвертации содержание реплик не меняется — преобразуются только служебные элементы документа.
Почему вместо русских букв появились символы?
Скорее всего, дело в кодировке. Откройте исходную копию с подходящей кодовой страницей и сохраните результат в UTF-8.
Итог
Чтобы преобразовать SRT в VTT, добавьте строку WEBVTT, замените запятые в тайм-кодах точками и сохраните документ в UTF-8 с расширением .vtt.
Если реплик много, удобнее открыть SRT в редакторе файлов субтитров, проверить текст и скачать готовый VTT. После конвертации обязательно проверьте синхронизацию и работу файла в целевом плеере.
