Format napisów SMI
Co potrafi wyrazić ten format
- Formatowanie tekstu
- Pogrubienie i kursywa
- Pozycja na ekranie
- Tak
- Czasy karaoke
- Nie
- Podziały wierszy w bloku
- Tak
- Oś czasu
- Czas początku i końca dla każdego bloku
- Dokładność czasów
- 1 ms
- Czasy zapisane jako numery klatek
- Nie
- Tekst od prawej do lewej
- Tak
Przykłady
Typowy plik SAMI i to, co z niego odczytujemy
Plik
<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>
Co zawiera
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 cuesPrawa strona nie jest przekonwertowanym plikiem — to, co ta strona odczytuje z lewej strony i od czego zaczyna się każda konwersja tego pliku.
Niechlujny plik SAMI i to, co nadal da się z niego odczytać
Plik
<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>Co zawiera
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 generatedPrawdziwe pliki przychodzą z BOM, windowsowymi końcami wierszy, zbłąkaną linią przed znacznikiem czasu albo czasem, którego nie da się odczytać. Nic nie rzuca wyjątku: to, czego nie da się zrozumieć, jest zgłaszane, a nie po cichu wyrzucane.
Konwertuj SAMI (SMI) na inny format
Każda z nich działa w całości w Twojej przeglądarce. Etykiety mówią, ile kosztuje dany kierunek, zanim go otworzysz.
- Dokładność
- Treści specyficzne dla formatu
- Formatowanie
- Pozycjonowanie
- Treści specyficzne dla formatu
- Treści specyficzne dla formatu
- Czasy
- Formatowanie
- Pozycjonowanie
- Dokładność
- Treści specyficzne dla formatu
- Formatowanie
- Pozycjonowanie
- Liczba klatek
- Treści specyficzne dla formatu
- Formatowanie
- Pozycjonowanie
- Treści specyficzne dla formatu
- Formatowanie
- Pozycjonowanie
- Treści specyficzne dla formatu
- Dokładność
- Treści specyficzne dla formatu
- Treści specyficzne dla formatu
- Czasy
- Formatowanie
- Pozycjonowanie
- Podziały wierszy
- Treści specyficzne dla formatu
- Pozycjonowanie
- Treści specyficzne dla formatu
Konwersja do tego formatu
- 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)
SAMI (SMI) to jeden z formatów napisów, które obsługuje ta strona, a ta strona jest jego opisem: co potrafi przechować, czego nie potrafi i gdzie przekonwertować go dalej.
Powyższa tabela mówi wszystko — nie ma ukrytej listy funkcji. Gdy wiersz mówi „nie”, dokładnie to ginie przy konwersji do SMI, a każda podlinkowana niżej strona konwersji mówi o tym, zanim otworzysz plik.
Każda z tych konwersji odbywa się w twojej przeglądarce. Nic nie jest wysyłane i nie potrzebujesz konta, co ma znaczenie przy materiale objętym NDA, dokumentacją pacjenta albo embargiem emisyjnym.
Częste pytania
Czym jest plik SMI?
To SAMI firmy Microsoft: napisy zapisane jako fragment HTML, w którym każdy znacznik SYNC Start mówi, co jest na ekranie od danego momentu. Czytał go Windows Media Player oraz narzędzia DVD i emisyjne z tamtych lat, a pliki SMI wciąż pojawiają się w materiałach archiwalnych.
Czy SMI przechowuje styl?
Częściowo, i to w tekście, a nie obok niego: wyróżnienia i kolor są częścią bloku (b, i, u, font color). Sam blok nie deklaruje rozmiaru czcionki, obrysu ani marginesu. Plik SAMI może też nieść CSS dla akapitów w bloku STYLE w nagłówku — tam zwykle zapisany jest kanał, jego czcionka i kolor — i wtedy o wyglądzie decyduje ta reguła, a nie strona wyświetlająca. Plik, który to ma, zachowuje to; przy konwersji do SMI powstaje niewielki domyślny blok STYLE, a akapity wychodzą jako P bez atrybutu Class.
Czy każdy blok SMI ma zapisany początek i koniec?
Plik SAMI zapisuje tylko początek: koniec bloku wyznacza następny znacznik SYNC. Model bloku ma oba końce, a moment czytamy jako Start=4126, czyli z dokładnością do milisekundy — liczby nie zaokrągla się, więc blok może być krótki, długi albo nachodzić na następny.
Do jakiego formatu najlepiej przekonwertować SMI?
Nic na tej stronie nie przyjmie wszystkiego, co trzyma plik SAMI, więc nie ma kierunku bez kosztu — każda strona konwersji wymienia własną listę strat. Wybierz format docelowy według tego, z którą listą potrafisz żyć, a nie według tego, który format widziałeś najczęściej.
Co plik SAMI trzyma poza swoimi blokami?
Blok STYLE w nagłówku z CSS dla akapitów — dla pliku napisów to zwykle wygląd kanału: czcionka, rozmiar, kolor i miejsce tekstu na ekranie — a do tego element TITLE i atrybuty każdego akapitu, takie jak Class=ENCC, który wskazuje akapitowi jedną z tych reguł. Nic z tego nie należy do modelu bloku, więc format bez odpowiednika nie może tego przyjąć i każda strona konwersji wymienia to jako stratę.