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

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

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

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

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

  • Тайминг

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

  • Точность

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

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

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

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

Сервер не участвует: файл читается и записывается в браузере, поэтому можно обрабатывать пакеты и прерывать очередь в любой момент.

Примеры

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

Вход

0:00:01.000,0:00:03.500
The quick brown fox.

0:00:04.000,0:00:06.250
Jumps over the lazy dog.

0:00:07.000,0:00:09.000
Two lines here.
And a second one.

Выход

[00:01.00]The quick brown fox.
[00:04.00]Jumps over the lazy dog.
[00:07.00]Two lines here.
[00:07.00]And a second one.

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

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

Вход

0:00:02.000,0:00:04.000
Carriage-return line endings.

	0:00:06.000,0:00:08.000
Indented timecode, no final newline.

Выход

[00:02.00]Carriage-return line endings.
[00:06.00]Indented timecode, no final newline.

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

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

Как будут выглядеть таймкоды SBV после перевода в LRC?

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

Чем придётся пожертвовать при экспорте SBV в LRC?

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

Что теряется при чтении SBV и переводе в LRC?

SBV — формат YouTube с парой времени в одной строке и без оформления. В LRC переносится текст и интервалы; стилей и служебных блоков в SBV нет, поэтому потерять можно только оформление, которого исходник не содержал.

Не перепутается ли порядок реплик после конвертации SBV в LRC?

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

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

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

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

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

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