Перейти к основному содержимому
SubtitleMatrix

Конвертер VTT в LRC

Или вставьте текст субтитров

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

4 пункта теряются или требуют решения

  • Тайминг

    время окончания реплик (целевой формат хранит только начало реплики)

  • Оформление

    всё оформление (жирный, курсив, цвет, обводка, тень)

  • Точность

    точность тайминга — часы результата грубее, поэтому каждая метка округляется до ближайших 10 мс

  • Содержимое формата

    содержимое, которое исходный формат хранит вне реплик (блоки не-реплик, текст заголовка, настройки реплик, закомментированные события): целевому формату его некуда деть

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

VTT — веб-формат субтитров с обязательной строкой WEBVTT в начале файла, а LRC — формат текстов песен, где у каждой строки есть только момент начала; эта страница переводит файл из одного формата в другой. VTT хранит полный интервал (00:00:01.000 → 00:00:03.500), а LRC записывает только начало: та же реплика превратится в [00:01.00]. Точность при этом падает: LRC округляет каждый таймкод до 10 мс, поэтому 00:00:04,001 превратится в 0:00:04.00.

Сайт перечисляет потери до запуска — концы реплик, оформление, доли секунды, служебные блоки VTT; VTT хранит полный интервал, а LRC запоминает только начало строки: конец будет выводиться из следующей строки, а у последней — из значения по умолчанию 2 000 мс.

Файлы разбираются локально в браузере и не отправляются на сервер; очередь можно остановить, а результаты скачать одним архивом.

Примеры

Обычный файл VTT, переведённый в LRC

Вход

WEBVTT

intro
00:00:01.000 --> 00:00:04.000
Hello there.

00:00:04.500 --> 00:00:08.000 align:start position:10%
Second line with <i>italics</i>.

Выход

[00:01.00]Hello there.
[00:04.50]Second line with italics.

Сравните две стороны: VTT хранит полный интервал (00:00:01.000 → 00:00:03.500), а LRC записывает только начало [00:01.00]; текст сохраняется, а конец реплики в файл не попадает.

Тот же перевод на неаккуратном файле VTT

Вход

a stray comment line
cue-id-1
00:00:01.000 --> 00:00:02.000
No header, two lines before the timecode.

Выход

[00:01.00]No header, two lines before the timecode.

Второй файл проверяет граничные случаи. VTT читает его без падения, а LRC записывается заново, поэтому часть дефектов исчезает, но пропущенные блоки не возвращаются.

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

Что происходит с отметками времени при конвертации VTT в LRC?

VTT хранит полный интервал (00:00:01.000 → 00:00:03.500), а LRC записывает только начало: та же реплика превратится в [00:01.00]. Точность при этом падает: LRC округляет каждый таймкод до 10 мс, поэтому 00:00:04,001 превратится в 0:00:04.00.

Что исчезнет из файла, если сохранить VTT как LRC?

VTT хранит полный интервал, а LRC запоминает только начало строки: конец будет выводиться из следующей строки, а у последней — из значения по умолчанию 2 000 мс. VTT хранит базовое оформление: жирный, курсив, подчёркивание и классы, а LRC умеет только чистый текст: шрифт, цвет, обводка, тень и начертание исчезнут. точность падает: LRC округляет каждый таймкод до 10 мс, тогда как VTT хранил миллисекунды, поэтому 00:00:04,001 станет 0:00:04.00. VTT хранит вне реплик блоки NOTE, STYLE и REGION и настройки align: и position:, а в LRC для них нет места. Это полный список потерь для пары VTT → LRC; сайт показывает его до запуска.

Как LRC определяет конец реплики, если в VTT он записан?

LRC хранит только начало строки в виде [00:01.00] с точностью до сотых; конца в формате нет. При переводе из VTT конец каждой реплики теряется, а при чтении выводится из начала следующей строки, у последней — 2 000 мс по умолчанию.

Что произойдёт с многострочными репликами VTT в файле LRC?

VTT может хранить несколько строк в одной реплике, а LRC записывает каждую строку отдельной меткой: многострочная реплика превратится в несколько строк с одинаковым временем начала, порядок сохраняется.

В какой кодировке сохраняется LRC и какое у него расширение при переводе из VTT?

Файл LRC записывается в UTF-8 без BOM с переводами строк LF и расширением .lrc; при чтении VTT сайт сам определяет BOM и стиль переводов строк и нормализует их. Кириллица и другие алфавиты сохраняются без замены символов.

Что происходит с блоками NOTE и STYLE из VTT при переводе в LRC?

VTT хранит вне реплик блоки NOTE, STYLE и REGION и настройки вроде align: и position:. В LRC для них нет места, поэтому они теряются; остаются текст, интервалы и базовое начертание, если LRC его поддерживает.

Похожие инструменты