Конвертация · текст → VTT
Сделать субтитры VTT из текста
Субтитры, которые едут на веб-страницу, обязаны быть WebVTT, и сделать субтитры VTT из текста — как раз способ довести сценарий до этой цели: каждая строка становится репликой выбранной вами длины под действительным заголовком WEBVTT, готовой к синхронизации со звуком. Дальше страница разбирает ловушку с таймингами, устройство получившегося каркаса, подключение к видео на странице и ограничения.
Обновлено
Как сделать субтитры VTT из текста
Вставьте сценарий в инструмент выше — по одной реплике на строку — или перетащите файл .txt, задайте, сколько секунд держится строка, и скачайте .vtt. Страница работает локально и ничего не хранит: черновик закадрового текста для ещё не анонсированного продукта остаётся на вашем устройстве, а файл можно пересобирать так часто, как меняется сценарий.
Впервые встречаете формат? Что обязан содержать действительный документ WebVTT объясняет, почему первая строка так важна.
Честно про тайминги
В обычном сценарии нет вообще никаких данных о времени, поэтому ничто здесь не может вычислить, когда строка должна появиться на экране, — и придумывать ответ конвертер не станет. Каждая строка получает фиксированную длительность, которую вы выбрали, идущую подряд от нуля. Загрузка — это каркас: верная структура, ваши точные слова, условные тайминги, которые ещё предстоит подвинуть.
Это стартовая позиция, а не готовая дорожка субтитров. Откройте её в редакторе и выровняйте реплики по звуку — единственная часть работы с субтитрами, которая требует живого слуха, и единственное, чего конвертер текста в субтитры честно сделать не может.
Как устроен получившийся каркас
Файл открывается строкой WEBVTT отдельно, а дальше несёт по одной реплике на строку сценария: строку тайминга вроде 00:00:04.000 --> 00:00:06.000 и следом слова. Миллисекунды отделены точкой, как того требует спецификация, а кодировка — UTF-8, поэтому ударения и кириллица переживают конвертацию без потерь. Идентификаторы реплик, настройки позиционирования и блоки STYLE намеренно опущены — они необязательны, а каркас проще подгонять без них. Результат — обычный текст, поэтому два черновика закадрового текста можно сравнить построчно в Git, или коллега исправит опечатку прямо в браузере задолго до того, как кто-то откроет таймлайн. Даже для получасового ролика такой каркас весит от силы несколько десятков килобайт — вся тяжесть на стороне видео, а не подписей. Нужен вариант для монтажной программы? Такой же каркас в формате SubRip нумерует каждую реплику и использует запятые.
Подключить дорожку к странице
После синхронизации реплик дорожка подключается одним элементом: <track kind="subtitles" src="intro.vtt" srclang="ru" label="Русский"> внутри <video>. Раздавайте её с того же домена или добавьте заголовки CORS, если файл лежит на CDN, и убедитесь, что сервер отдаёт text/vtt — неверный тип содержимого чаще всего и есть причина, почему идеальная дорожка так и не появляется. Тот же документ пригодится и как список глав или дорожка метаданных — WebVTT покрывает и эти случаи. Если слова на самом деле взяты из уже опубликованного ролика, проще скачать готовые субтитры вместо того, чтобы набирать их заново.
Честные ограничения
Прослушивания, перевода и обработки медиа в этом инструменте нет: на входе текст, на выходе каркас субтитров. Длинные строки не переразбиваются за вас, наложение речи не распознаётся, а длительности одинаковы по замыслу, а не по недосмотру. Всё, что инструмент обещает, проверяется в текстовом редакторе за секунды. Нужен готовый, уже синхронизированный транскрипт чего-то опубликованного в сети? Возьмите готовые слова прямо из самого видео и обойдитесь без каркаса вовсе.
Начинающие дикторы и авторы курсов чаще всего приходят сюда именно за черновиком закадрового текста: озвучка ещё не записана, а разметка для плеера уже нужна, чтобы согласовать сценарий с командой. Как только звук готов, каркас превращается в рабочую дорожку буквально одной синхронизацией, без повторного набора текста с нуля.
Частые вопросы
Как сделать субтитры VTT из текста?
Вставьте сценарий в инструмент выше — по одной реплике на строку, — задайте, сколько секунд держится строка, и скачайте .vtt. Всё считается в браузере, бесплатно, ничего не покидает устройство.
Конвертер определит настоящие тайминги?
Нет — и мы не будем делать вид, что может. В обычном тексте нет данных о времени, поэтому каждая реплика получает одинаковую длительность, которую вы выбрали. Подгонка под звук происходит потом, в редакторе, на слух.
Почему VTT, а не SRT?
Потому что субтитры едут на веб-страницу. Элемент HTML5 track читает только WebVTT, и потоковые плееры ждут именно его. Для таймлайна в Premiere или Resolve надёжнее остаётся SubRip.
Файл начинается со строки WEBVTT?
Да. Заголовок пишется автоматически, таймкоды используют точку, а текст — в UTF-8: это то, чего требует спецификация, поэтому документ проходит проверку как есть.