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

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

Конвертация форматовТекст песни (LRC)
Или вставьте текст субтитров

Параметры

Используется, когда в источнике нет времени окончания (простой текст, LRC). Таймлайн в результате строится здесь, а не преобразуется, поэтому вы получите именно это число.

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

1 пункт теряется или требует решения

  • Тайминг

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

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

Перевод LRC в SMI меняет не содержание, а способ записи: LRC — формат текстов песен, где у каждой строки есть только момент начала, SMI — формат Microsoft на разметке, где каждая реплика начинается тегом SYNC. LRC хранит только начало строки вида [00:01.00], а SMI требует полный интервал, поэтому конец каждой реплики сайт вычисляет по следующей строке. Точность не теряется: миллисекундная шкала SMI вмещает все значения LRC без округления.

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

Обработка идёт на вашем устройстве, без регистрации и без передачи файлов: пакет из нескольких серий обрабатывается по очереди.

Примеры

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

Вход

[ti:Sample Song]
[ar:Some Artist]
[length:00:41.00]
[offset:+250]
[00:12.00]First line of the song.
[00:15.30]Second line.
[00:15.30]Second line, translated.
[00:18.00]
[00:21.50]Final line.

Выход

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=12000>
<P>First line of the song.
<SYNC Start=15300>
<P>&nbsp;
<SYNC Start=15300>
<P>Second line.<br>Second line, translated.
<SYNC Start=18000>
<P>&nbsp;
<SYNC Start=18000>
<P>
<SYNC Start=21500>
<P>&nbsp;
<SYNC Start=21500>
<P>Final line.
<SYNC Start=23500>
<P>&nbsp;
</BODY>
</SAMI>

Сравните две стороны: LRC хранит только начало строки ([00:01.00]), а SMI требует полный интервал, поэтому конец каждой реплики сайт выводит из следующей строки.

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

Вход

[ar:Some Artist]
[0:05.5]Leading zero omitted, one decimal.
[00:07]Second with no centiseconds.
[00:03.00]Out of order.
[00:07.00][00:09.00]Repeated chorus line.
[00:12.00]

Выход

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=3000>
<P>Out of order.
<SYNC Start=5500>
<P>&nbsp;
<SYNC Start=5500>
<P>Leading zero omitted, one decimal.
<SYNC Start=7000>
<P>&nbsp;
<SYNC Start=7000>
<P>Second with no centiseconds.<br>Repeated chorus line.
<SYNC Start=9000>
<P>&nbsp;
<SYNC Start=9000>
<P>Repeated chorus line.
<SYNC Start=12000>
<P>&nbsp;
<SYNC Start=12000>
<P>
<SYNC Start=14000>
<P>&nbsp;
</BODY>
</SAMI>

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

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

Сохранится ли точность таймкода LRC в файле SMI?

LRC хранит только начало строки вида [00:01.00], а SMI требует полный интервал, поэтому конец каждой реплики сайт вычисляет по следующей строке. Точность не теряется: миллисекундная шкала SMI вмещает все значения LRC без округления.

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

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

Почему в SMI после каждой реплики появляется очищающий блок при переводе LRC в SMI?

SMI не хранит конец реплики: она длится до следующего тега SYNC. Поэтому при переводе LRC в SMI сайт ставит SYNC Start с миллисекундами и добавляет очищающий блок в момент окончания реплики, иначе текст висел бы до следующей.

Сохранятся ли переносы строк и порядок реплик при переводе LRC в SMI?

LRC хранит строки, а не многострочные реплики, поэтому SMI получит по реплике на строку; порядок сохраняется.

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

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

Что произойдёт с концом реплики LRC при переводе в SMI?

LRC знает только начало ([00:01.00]); конца в файле нет. SMI требует полный интервал, поэтому сайт вычисляет конец по началу следующей строки, а для последней берёт 2 000 мс. Исходная длительность не восстанавливается.

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