Формат субтитров SMI
Что умеет этот формат
- Оформление текста
- Жирный и курсив
- Положение на экране
- Да
- Тайминг караоке
- Нет
- Переносы строк внутри реплики
- Да
- Таймлайн
- Начало и конец для каждой реплики
- Точность тайминга
- 1 мс
- Тайминг хранится в номерах кадров
- Нет
- Текст справа налево
- Да
Примеры
Типичный файл SMI и то, что сайт из него читает
Файл
<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial; }
.ENCC { Name: English; lang: en-US; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P Class=ENCC>Hello there.
<SYNC Start=3000>
<P Class=ENCC>
<SYNC Start=3500>
<P Class=ENCC>How are you?<br>Fine, thanks.
<SYNC Start=6000>
<P Class=ENCC>
</BODY>
</SAMI>
Что в нём
2 cues, 3 lines of text
Start=1000 = 00:00:01.000 → 00:00:03.000
Hello there.
[Class=ENCC]
Start=3500 = 00:00:03.500 → 00:00:06.000
How are you?
Fine, thanks.
[Class=ENCC]
Outside the cues:
head a <STYLE> block with CSS for the paragraphs, kept as it came in
cue ends the next <SYNC> tag — a SAMI file writes no end time of its own
clearing a <P> block blanks the screen; the two here are kept as clearing blocks, not turned into cuesПравая колонка — не результат конвертации, а то, что сайт извлекает из левого файла: реплики, интервалы, оформление и всё, что осталось за пределами реплик.
Неаккуратный файл SMI: что всё равно читается
Файл
<SAMI>
<BODY>
<SYNC Start=abc>
<P Class=ENCC>this block's start cannot be read
<SYNC Start=2000>
<SYNC Start=4000>
<P>no attributes here<br>second line
<SYNC Start="6000">
some loose text before any P
</BODY>
</SAMI>Что в нём
3 cues, 3 lines of text
Start=2000 = 00:00:02.000 → 00:00:04.000
(no text)
Start=4000 = 00:00:04.000 → 00:00:06.000
no attributes here
second line
Start=6000 = 00:00:06.000 → 00:00:08.000
some loose text before any P
Outside the cues:
head no <STYLE> block and no <TITLE> — just the <SAMI> and <BODY> tags
cue ends the next <SYNC> tag; the last cue has none after it, so its end time was given a default
loose text text between two <SYNC> tags that belongs to no <P> is kept and attached to the cue open at that point
Reported while reading — repaired or skipped, never silently:
1 × SYNC blocks whose start time could not be read (they were skipped)
1 × the last cue has no following timestamp, so its end time was generatedВторой файл намеренно неаккуратный: BOM, смешанные переводы строк и пустые поля. Сайт всё равно дочитывает его до конца, а пропущенные фрагменты перечисляет в отчёте.
Конвертировать SAMI (SMI) в другой формат
Каждая страница работает целиком в вашем браузере. Подписи говорят, чего стоит это направление, ещё до того, как вы его откроете.
- Точность
- Содержимое формата
- Оформление
- Позиционирование
- Содержимое формата
- Содержимое формата
- Тайминг
- Оформление
- Позиционирование
- Точность
- Содержимое формата
- Оформление
- Позиционирование
- Частота кадров
- Содержимое формата
- Оформление
- Позиционирование
- Содержимое формата
- Оформление
- Позиционирование
- Содержимое формата
- Точность
- Содержимое формата
- Содержимое формата
- Тайминг
- Оформление
- Позиционирование
- Переносы строк
- Содержимое формата
- Позиционирование
- Содержимое формата
Конвертация в этот формат
- SubRip (SRT) → SAMI (SMI)
- WebVTT (VTT) → SAMI (SMI)
- Advanced SubStation Alpha (ASS) → SAMI (SMI)
- SubStation Alpha (SSA) → SAMI (SMI)
- YouTube SBV → SAMI (SMI)
- LRC Lyrics → SAMI (SMI)
- MicroDVD → SAMI (SMI)
- TTML (Timed Text) → SAMI (SMI)
- SubtitleMatrix JSON → SAMI (SMI)
- Plain Text (TXT) → SAMI (SMI)
- CSV Spreadsheet → SAMI (SMI)
SMI — формат Microsoft на разметке, где каждая реплика начинается тегом SYNC. Внутри файла — разметка с блоком STYLE и цепочкой тегов SYNC Start, где текст лежит в абзацах P; время записывается как <SYNC Start=1000>, то есть целые миллисекунды в атрибуте Start, а конца у реплики нет.
SMI хранит базовое оформление через CSS-классы, а конец реплики задаётся следующим тегом SYNC; отдельного поля конца в формате нет. Файлы обрабатываются в браузере и не отправляются на сервер; пакет можно скачать одним архивом.
Частые вопросы
Что хранит SMI помимо текста реплик?
Структура SMI: разметка с блоком STYLE и цепочкой тегов SYNC Start, где текст лежит в абзацах P. Дополнительно: блок STYLE с CSS и атрибуты абзаца вроде Class=ENCC. Оформление — базовое оформление через CSS-классы и атрибуты абзаца.
Как SMI записывает начало и конец реплики?
SMI пишет время как <SYNC Start=1000> (целые миллисекунды в атрибуте Start, а конца у реплики нет). Полный интервал выглядит так: <SYNC Start=1000> … <SYNC Start=3500>.
Насколько богатое оформление поддерживает SMI?
Оформление SMI — базовое оформление через CSS-классы и атрибуты абзаца. Сильнее всего это заметно при сравнении с ASS: там есть шрифт, цвет, обводка, тень и караоке, а SMI такие поля либо не хранит, либо записывает упрощённо.
Что теряется при переводе SMI в более простой формат?
При переводе SMI в SRT или TXT теряются CSS-оформление и очищающие блоки; в TTML и JSON остаётся больше, но классы абзацев всё равно не переносятся напрямую.
Можно ли перевести SMI в другие форматы в браузере?
Да: на сайте открыто 11 направлений перевода из SMI — в SRT, VTT, ASS, SSA, SBV, LRC, MicroDVD, TTML, JSON, TXT, CSV. Файл разбирается и записывается в текущей вкладке, не отправляется на сервер, а пакет можно скачать одним архивом.
Как SMI читает повреждённый файл?
SMI читается как разметка: незакрытые теги и пропущенные SYNC не роняют разбор, а блоки без текста превращаются в очищающие абзацы.