SSubToolDesk
ru
SRT → VTT

Конвертируйте SubRip (.srt) в WebVTT

Сделайте файл .srt корректным для элемента HTML5 <track> и современных видеоплееров. Заголовок WEBVTT добавляется автоматически, тайм-коды переформатируются, а файл никуда не загружается.

Обнаружено: …
Перетащите файл, вставьте текст или редактируйте напрямую
…
Локально

Ваши файлы никогда не попадают на сервер. Каждое преобразование на этой странице выполняется локально в вашем браузере с помощью JavaScript API FileReader. Ничего не загружается, не регистрируется и не сохраняется. Подходит для конфиденциальных записей Zoom/Teams, ещё не вышедшего видео и юридических интервью.

Как работает конвертация SRT в VTT

Если вы когда-нибудь пытались поместить файл .srt прямо в тег HTML5 <track kind="captions" src="captions.srt">, вы наверняка обнаружили, что браузеры просто игнорируют его. Элемент <track> (и встроенное меню субтитров, которое вокруг него строит каждый современный браузер) понимает только WebVTT. SubRip, при всей своей распространённости среди настольных плееров и редакторов, вообще не входит в спецификацию HTML5.

Исправление механическое, но требует точности: WebVTT требует, чтобы первая строка файла была буквально WEBVTT, а разделителем миллисекунд в каждом тайм-коде должна быть точка, а не запятая, как в SRT (00:00:09,400 → 00:00:09.400). Ошибитесь хотя бы в одной из этих деталей — и браузер молча откажется показывать субтитры, без единого сообщения об ошибке. Конвертер SubToolDesk разбирает ваш SRT локально, пересобирает файл с корректным заголовком и исправленными тайм-кодами и аккуратно перенумеровывает реплики — всё прямо в вашей вкладке браузера.

Пошаговая инструкция

  • Перетащите файл .srt в конвертер выше или вставьте его содержимое в левую панель.
  • Убедитесь, что значок формата определяет SRT.
  • Нажмите «Скачать», чтобы сохранить корректный файл .vtt с именем, совпадающим с исходным файлом.
  • Подключите его через элемент <track>: <track kind="captions" src="/captions.vtt" srclang="en" label="English">.

Зачем конвертировать SRT в WebVTT

Файл .srt отлично синхронизируется в настольном редакторе, но в браузере он попросту бесполезен. Конвертация в WebVTT почти всегда связана с одной из следующих причин:

  • Причина: вы добавляете субтитры к собственному элементу <video> и вам нужен формат, который действительно понимает тег HTML5 <track>.
  • Причина: вы выполняете требование доступности (например, критерий субтитров WCAG 2.1) и вам нужны субтитры, соответствующие стандарту, а не формат, который браузеры молча игнорируют.
  • Причина: ваша видеоплатформа, CMS или встроенный плеер скринкастов на сайте документации принимает только файлы .vtt.
  • Причина: вы получили файлы .srt от монтажёра, фрилансера или студии субтитрирования и вам нужно передать разработчику файл, готовый к немедленному использованию.
  • Причина: вы переносите видеотеку с платформы, которая экспортировала SRT, на собственный плеер, рассчитанный на нативные субтитры браузера.
  • Причина: вам нужно решение без установки ffmpeg и написания одноразового скрипта конвертации ради одного файла.

До и после: реальный пример

Короткий файл SRT из трёх реплик — с тайм-кодами через запятую и последовательной нумерацией — конвертированный с выключенными «Удалять метки говорящих» и «Удалять теги форматирования» (состояние по умолчанию на этой странице, поскольку для получения корректного WebVTT ничего удалять не требуется):

Before
1
00:00:01,200 --> 00:00:04,000
С возвращением, сегодня мы разбираем показатели за третий квартал.

2
00:00:04,300 --> 00:00:07,900
Спасибо, что пригласили. Давайте сразу приступим.

3
00:00:08,100 --> 00:00:11,500
Выручка выросла на восемь процентов по сравнению с прошлым годом.
After
WEBVTT

1
00:00:01.200 --> 00:00:04.000
С возвращением, сегодня мы разбираем показатели за третий квартал.

2
00:00:04.300 --> 00:00:07.900
Спасибо, что пригласили. Давайте сразу приступим.

3
00:00:08.100 --> 00:00:11.500
Выручка выросла на восемь процентов по сравнению с прошлым годом.

Текст реплик, тайм-коды и даже номера реплик остаются без изменений. Добавляется только заголовок WEBVTT, а каждая запятая перед миллисекундами заменяется точкой — это ровно те два изменения, которые нужны браузеру, чтобы принять файл.

До и после

Исходный SRT:
1
00:00:09,400 --> 00:00:12,900
Выручка выросла на восемь процентов.

Результат VTT:
WEBVTT

1
00:00:09.400 --> 00:00:12.900
Выручка выросла на восемь процентов.

Почему это важно для веб-разработчиков

Доступное видео с субтитрами — это одновременно требование удобства использования и соответствия стандартам для большинства публичных сайтов (критерий успеха WCAG 2.1 1.2.2 требует субтитров для предзаписанных медиа), а элемент <track> — это стандартный способ показать их без сторонней видеоплатформы. Если ваш монтажный процесс (или фрилансер) отдаёт вам только файлы .srt, конвертация здесь за секунды возвращает готовый к использованию файл WebVTT — без установки ffmpeg и написания скрипта конвертации.

Обработка там, где вы находитесь, а не на наших серверах

Поскольку это переформатирование обычного текста, видеофайл никогда не затрагивается и не загружается — только текст субтитров, и только внутри вашей собственной вкладки браузера. Это одинаково важно и для внутреннего демо-видео продукта, и для публичной маркетинговой страницы.

Использование результата в элементе <track>

После того как вы скачали конвертированный файл, добавьте его в разметку <video> как дочерний элемент <track>:

<video controls>
  <source src="demo.mp4" type="video/mp4">
  <track
    kind="captions"
    src="/captions.vtt"
    srclang="en"
    label="English"
    default>
</video>

Атрибут default указывает браузеру включить эту дорожку автоматически; опустите его, если предлагаете несколько языковых дорожек и хотите, чтобы зритель выбирал сам. Браузеры строго проверяют заголовок WEBVTT: отсутствующий или неправильно написанный заголовок — самая частая причина, по которой субтитры молча не появляются, даже если остальной файл оформлен верно.

Для кого создан этот конвертер

Основная аудитория — фронтенд- и full-stack-разработчики, добавляющие субтитры к собственному видеоплееру, но видеопродакшн-команды, передающие материалы разработчику, тоже используют этот инструмент, чтобы отдать файл, который точно будет работать, а не оставлять конвертацию формата как открытую задачу на чужих плечах. Он так же полезен для сайтов документации с открытым исходным кодом, встраивающих скринкасты, для внутренних команд, субтитрирующих обучающие видео ради соответствия требованиям доступности, и для всех, кто переносит видеотеку с платформы, экспортировавшей SRT, на собственный плеер, ожидающий нативные субтитры браузера.

Что этот конвертер сохраняет и что удаляет

Сохраняется:

  • Каждое слово текста реплик — точно так, как написано, включая опечатки в исходном файле.
  • Тайм-коды с точностью до миллисекунды для каждой реплики — переносятся без изменений.
  • Один блок на реплику, в исходном порядке, с номерами реплик, перенумерованными по порядку начиная с 1.
  • Любые префиксы говорящих или встроенные теги в тексте реплики — если только вы не включите «Удалять метки говорящих» или «Удалять теги форматирования».

Изменяется или удаляется:

  • Запятая перед миллисекундами заменяется точкой в каждом тайм-коде, поскольку WebVTT требует 00:00:04.000, а не 00:00:04,000, как в SRT.
  • В начало файла добавляется строка заголовка WEBVTT, поскольку WebVTT требует её, а в SRT она отсутствует.
  • Текстовые префиксы говорящих вроде СПИКЕР 1: — но только если включено «Удалять метки говорящих»; по умолчанию они остаются на месте.
  • Теги форматирования вроде <i> или <b> — но только если включено «Удалять теги форматирования»; по умолчанию они остаются на месте.

Частые проблемы и способы их решения

  • Браузер всё ещё не показывает субтитры после конвертации: проверьте, что значок формата над конвертером действительно показывал SRT до конвертации; сильно обрезанная вставка текста может нарушить определение реплик и дать пустой или некорректный результат.
  • Теги <i> или <b> по-прежнему отображаются как обычный текст в субтитрах: это ожидаемо — «Удалять теги форматирования» по умолчанию выключено на этой странице, поскольку WebVTT поддерживает эти теги нативно; включите опцию, только если хотите получить обычный текст.
  • Имена говорящих вроде СПИКЕР 1: переносятся прямо в вывод VTT: включите «Удалять метки говорящих», если хотите от них избавиться; по умолчанию они сохраняются, поскольку этот конвертер исходит из того, что вам нужно точное структурное переформатирование, а не правка содержимого.
  • В результате всё ещё стоит запятая вместо точки перед миллисекундами: убедитесь, что вы скачали именно вывод .vtt, а не копию исходного файла .srt; значок формата и подпись вывода над конвертером показывают, что именно вы видите.
  • Субтитры не появляются, хотя файл выглядит корректным: откройте файл .vtt в текстовом редакторе и убедитесь, что самая первая строка — это именно WEBVTT, без ничего перед ней, даже без метки порядка байтов или пустой строки; если эта строка не первая, браузер молча отклоняет файл.
  • Буквы с диакритикой или нелатинский текст отображаются как искажённые символы вроде é в конвертированном файле: исходный .srt не был сохранён в кодировке UTF-8; экспортируйте или пересохраните его в UTF-8 перед конвертацией, поскольку WebVTT, как и SRT, предполагает текст в UTF-8.

Что не меняется при конвертации

Текст реплик и тайм-коды с точностью до миллисекунды переносятся в точности так, как написаны. Это структурное переформатирование, а не повторная расшифровка. Если в исходном SRT есть опечатки, они останутся и в выводе VTT — этот инструмент исправляет соответствие формату, а не точность содержимого. Если вы хотите заодно убрать метки говорящих или встроенные теги оформления, переключатели «Удалять метки говорящих» и «Удалять теги форматирования» выше применяются к тексту реплики до того, как она переписывается в синтаксис WebVTT, — так можно совместить конвертацию формата с очисткой содержимого за один проход вместо запуска двух отдельных инструментов.

Часто задаваемые вопросы

Почему браузер отклоняет файл .srt в элементе <track>?

Элемент HTML5 <track> требует именно WebVTT. Браузеры не умеют нативно разбирать SRT для субтитров видео. Чтобы вообще воспользоваться встроенным API субтитров, файл нужно конвертировать в .vtt.

Что именно добавляет конвертер, чтобы получить корректный WebVTT?

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

Можно ли добавить позиционирование или оформление реплик после конвертации?

Да, этот инструмент выдаёт чистый, соответствующий стандарту текстовый файл WebVTT, который вы затем можете вручную дополнить настройками реплик (например, align или position) или тегами говорящего <v>, поскольку базовая структура уже корректна.

Останутся ли субтитры синхронизированными после конвертации?

Да, тайм-коды сохраняются с точностью до миллисекунды — меняется только символ-разделитель и добавляется заголовок, сами значения времени никогда не трогаются.

Работает ли это для субтитров, экспортированных из Premiere или DaVinci Resolve?

Да. Оба инструмента экспортируют стандартный SRT, который этот парсер читает нативно независимо от того, какая программа его создала.

Поддерживает ли хоть один браузер .srt напрямую, даже если это не соответствует спецификации?

Chrome и Firefox добавили нестандартную поддержку SRT через API TextTrack, но она работает непоследовательно и не гарантирована во всех браузерах и версиях. Спецификация HTML5 требует только WebVTT, поэтому конвертация в .vtt — единственный способ гарантировать, что субтитры отобразятся везде.