MediaScribe
🇷🇺Русский
Добавить в Chrome

Конвертация · SRT → VTT

Как сделать субтитры VTT из SRT-файла

Сделать субтитры VTT из SRT можно одной правкой файла: сверху добавляется строка WEBVTT, запятая перед миллисекундами меняется на точку, а слова и тайминги остаются точно такими же. Дальше по порядку — сам процесс, три отличия форматов, где браузер требует именно VTT, как подключить дорожку к видео и что инструмент сознательно не делает.

Обновлено

SRT→VTTсчитается в браузере · ничего не загружается

Вход — SRT

Результат — VTT

Как сделать субтитры VTT из SRT

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

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

Три строки, которые меняются

SRT и WebVTT описывают одно и то же — список реплик с началом, концом и текстом, — значит, правка короткая и ничего не теряет. Меняются ровно три вещи:

  1. Появляется заголовок. Каждый файл WebVTT открывается словом WEBVTT на отдельной строке; без него плеер откажется читать дорожку целиком.
  2. Запятая становится точкой. SRT пишет 00:01:04,500, VTT — 00:01:04.500: один символ на реплику, и самая частая причина, почему собранный вручную файл не открывается.
  3. Нумерация превращается в необязательную. В SRT номер над репликой обязателен; в VTT та же строка — необязательный идентификатор, и конвертер сохраняет её, чтобы версии было легко сравнить.

Вложенные теги <i> и <b> переживают правку без изменений — оба формата читают их одинаково. Все правила устройства разобраны в статье про то, из чего состоит SRT-файл.

Где браузер требует именно VTT

WebVTT — спецификация W3C и единственный формат, который читает элемент HTML5 <track>: Video.js, Plyr, JW Player и родной плеер Safari принимают дорожку одинаково, потому что читают её через общий браузерный API, а не через собственный код. Вторая причина — потоковое вещание: плейлист HLS доставляет субтитры сегментами в формате WebVTT, так что адаптивному проигрыванию нужен именно он, а не SRT. Спецификация строже ещё в одном: документ WebVTT обязан быть в кодировке UTF-8, что снимает проблему кракозябр, знакомую по архивам старых субтитров. Формат также несёт позиционирование, области показа и CSS-оформление, которых у старого формата никогда не было — что делает заголовок и настройки реплики, разобрано в гайде по устройству WEBVTT-файла.

Кодек картинки тут вообще ни при чём: дорожка подключается отдельным треком, а не вшивается в поток, значит, одна и та же реплика одинаково появится и над H.264, и над VP9, и над AV1. Если браузер вместо субтитров показывает ошибку вроде «no supported source found» или кнопка CC просто не загорается, причина почти всегда не в кодеке ролика, а в отсутствующей либо неверно оформленной дорожке.

Подключить дорожку к видео

На веб-странице разметка занимает один элемент: <track kind="subtitles" src="lecture.vtt" srclang="ru" label="Русский" default> внутри <video>. Больше дорожек ломают два серверных нюанса, чем что-либо в самих репликах. Первый — тип содержимого: ответ сервера обязан приходить как text/vtt, а на nginx это значит, что расширение прописано в mime.types. Второй — источник: дорожка с чужого домена требует заголовков CORS, иначе браузер молча её отбрасывает. Если кнопка субтитров остаётся серой, проверяйте сначала эти два пункта, а не саму конвертацию.

Что инструмент сознательно не делает

Он переписывает нотацию субтитров — и это всё обещание. Он не переводит содержимое вставленной дорожки, отказывается принимать MP4 и MP3, потому что это утилита переписывания нотации, а не транскрибатор, и никогда не меняет тайминги, не склеивает и не режет реплики: какой ритм был в источнике, такой останется в результате. Узость — осознанный выбор: на выходе действительный документ WebVTT с теми же словами и теми же таймингами, который проверяется в текстовом редакторе за секунды, а весит он обычно меньше двухсот килобайт даже для полуторачасовой лекции. Собираетесь дальше в Premiere или Resolve? Верните дорожку обратно в SRT для монтажа — формат, которого по-прежнему ждёт большинство таймлайнов.

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

Как сделать субтитры VTT из SRT?

Перетащите файл .srt в инструмент выше или вставьте его текст — версия WebVTT появится в правом поле сразу же. Скопируйте её или скачайте файл .vtt. Всё происходит в браузере, без регистрации и без ограничения по количеству файлов.

Чем VTT отличается от SRT?

Оба формата — простой текст со списком реплик и таймкодов. WebVTT открывается строкой WEBVTT, разделяет миллисекунды точкой, обязан быть в UTF-8 и поддерживает позиционирование и оформление. SRT нумерует каждую реплику, использует запятую и остаётся форматом, которого ждут настольные плееры и монтажные программы.

Тайминги при конвертации не съедут?

Нет. Время начала и конца копируется посимвольно, поэтому дорожка, синхронная до конвертации, остаётся синхронной после неё. Меняется только запись вокруг этого времени.

Файл субтитров куда-то загружается?

Нет. Вся правка — это код JavaScript, который выполняется на вашем устройстве, поэтому неопубликованный монтаж или закрытое интервью не уходят по сети.