Конвертация · SRT → VTT
Как сделать субтитры VTT из SRT-файла
Сделать субтитры VTT из SRT можно одной правкой файла: сверху добавляется строка WEBVTT, запятая перед миллисекундами меняется на точку, а слова и тайминги остаются точно такими же. Дальше по порядку — сам процесс, три отличия форматов, где браузер требует именно VTT, как подключить дорожку к видео и что инструмент сознательно не делает.
Обновлено
Как сделать субтитры VTT из SRT
Перетащите файл .srt в поле инструмента выше — или вставьте текст целиком — и версия WebVTT появится справа мгновенно. Регистрация не нужна, счётчика конвертаций нет: обработка происходит прямо в браузере, поэтому загруженный ролик или закрытое интервью никуда не отправляются. Результат копируется или скачивается файлом .vtt.
Если готового файла ещё нет, а есть только ссылка на ролик, короче будет получить готовый SRT прямо по ссылке на видео и уже его превратить в VTT здесь.
Три строки, которые меняются
SRT и WebVTT описывают одно и то же — список реплик с началом, концом и текстом, — значит, правка короткая и ничего не теряет. Меняются ровно три вещи:
- Появляется заголовок. Каждый файл WebVTT открывается словом
WEBVTTна отдельной строке; без него плеер откажется читать дорожку целиком. - Запятая становится точкой. SRT пишет
00:01:04,500, VTT —00:01:04.500: один символ на реплику, и самая частая причина, почему собранный вручную файл не открывается. - Нумерация превращается в необязательную. В 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, который выполняется на вашем устройстве, поэтому неопубликованный монтаж или закрытое интервью не уходят по сети.