Synchronized Accessible Media Interchange
Napisy Microsoftu dla Windows Media Player z 1998 roku: HTML z synchronizacją przed każdym napisem i arkuszem stylów, którego klasy są językami, więc jeden plik może zawierać kilka. Poza tym rzadko spotykany, ale wciąż typowy plik napisów w Korei.
W skrócie
| Rozszerzenie | .smi |
|---|---|
| Typ mediów | Brak zarejestrowanego |
| Specyfikacja | Microsoft, Understanding SAMI 1.0 (2001, zaktualizowana w 2003). Otwarta, bez opłat licencyjnych. |
| Dokładność czasu | Milisekundy |
| Kodowanie tekstu | Nie jest zadeklarowane. Starsze pliki koreańskie to głównie CP949, nowsze UTF-8; Subtitld rozpoznaje oba. |
| Stylowanie | Wbudowane znaczniki HTML i CSS: kursywa, pogrubienie, podkreślenie, przekreślenie, kolor, czcionki |
| Pozycjonowanie | Brak na obrazie: napisy wyświetlają się we własnym obszarze |
| Mówcy | Wiersz Source (ID=Source), pokazywany nad napisem |
| Języki | Kilka w jednym pliku, jedna klasa CSS na każdy |
| W kontenerach | Brak. Plik obok wideo, o tej samej nazwie. |
Budowa pliku
Dokument HTML: arkusz stylów, który nazywa języki, a potem synchronizacja dla każdej chwili, w której napisy się zmieniają.
<SAMI><HEAD><STYLE><!-- .KRCC {lang:ko-KR;} .ENCC {lang:en-US;} --></STYLE></HEAD><BODY> <SYNC Start=23000> <P Class=KRCC>넌 정말 못됐어. <P Class=ENCC>You're a jerk. <SYNC Start=24500> <P Class=KRCC> <P Class=ENCC>
- 1 · Nagłówek
Arkusz stylów: klasa dla każdego języka, z jego
langiName, które pokazują odtwarzacze. Pierwsza klasa to język, od którego zaczynają odtwarzacze. - 2 · Synchronizacja
Moment w milisekundach od początku wideo.
- 3 · Napisy
Akapit dla każdego języka. Każdy trwa do następnej synchronizacji, która ma go w swojej klasie;
go czyści.
Czas
Synchronizacja ma tylko początek. Napis kończy się, gdy zaczyna się następny w tym samym języku, albo gdy pojawi się pusty, więc każda pauza wymaga własnej synchronizacji.
Znaczniki zamykające są opcjonalne. Przykład Microsoftu nie zamyka ani <P>, ani <SYNC>, a odtwarzacze czytają go tak samo. Windows Media Player może wymagać tagów wielkimi literami, jak pokazuje przykład.
Style
Tekst SAMI to HTML, a arkusz stylów to CSS. Napis przyjmuje styl P, potem styl swojej klasy, potem własny atrybut style, a na końcu znaczniki wewnątrz niego.
| Zapis | Efekt | W Subtitld |
|---|---|---|
<I>, <EM> |
Kursywa | Zachowana |
<B>, <STRONG> |
Pogrubienie | Zachowane |
<U>, <S>, <STRIKE> |
Podkreślenie, przekreślenie | Zachowane |
<FONT color="#FFD700"> |
Kolor tekstu | Zachowany |
color, font-style, font-weight, text-decoration |
To samo, z arkusza stylów lub z style |
Zachowane |
<BR> |
Podział wiersza | Zachowany |
<FONT face>, font-size, margin |
Czcionka, rozmiar, odstępy | Nie zachowane |
<RUBY>…<RT> |
Odczytanie nad tekstem | Tekst zachowany, odczytanie nie |
Języki
Każda klasa to język. Odtwarzacze oferują je po ich Name, pokazują pierwszy zdefiniowany, dopóki nie zostanie zmieniony, i pokazują akapit bez klasy niezależnie od języka. Koreański plik może zawierać angielski obok koreańskiego, a widz wybiera.
Gdy Subtitld otwiera plik z kilkoma językami, pierwszy jest językiem napisów, a każdy kolejny tłumaczeniem, przypisanym do napisu, z którym się najbardziej pokrywa. Zapis oryginału i tłumaczenia jako dwóch języków zapisuje je z powrotem, z napisami tłumaczenia tylko tam, gdzie je ma.
Mówcy
<SYNC Start=23000>
<P Class=ENCC ID=Source>Celia
<P Class=ENCC>You're a jerk.
Akapit z ID=Source nie jest napisem. Podaje, kto mówi, w wierszu nad napisem, i pozostaje, dopóki nie zastąpi go kolejny. Subtitld czyta go jako mówcę każdego napisu, nad którym się znajduje, i tak zapisuje mówców, gdy o to poprosisz.
Odtwarzacze się różnią. FFmpeg i odtwarzacze na nim oparte pokazują wiersz Source kursywą nad napisem. MPlayer wkleja go w pierwszy wiersz napisu. Nazwy przed tekstem (Celia: …) wyglądają tak samo wszędzie.
SAMI w Subtitld
- Tekst każdego napisu i podziały wierszy
- Kursywa, pogrubienie, podkreślenie, przekreślenie i kolor
- Tłumaczenia jako języki z osobnymi klasami
- Mówcy jako wiersze Source
- Początek i koniec z dokładnością do milisekundy, w kolejności
- Miejsce napisu na obrazie: SAMI nie ma miejsca na obrazie
- Czcionki, rozmiary i marginesy
- Odczytania ruby
- Dubbing, twarze i kolory mówców
Zapisz projekt .usfx, aby zachować to, co jest w Subtitld.
Otwieranie pliku SAMI
Subtitld otwiera pliki .smi i .sami oraz:
- czyta SAMI tak, jak przeglądarki czytają HTML: tagi wielkimi literami lub nie, zamknięte lub nie, atrybuty w cudzysłowie lub bez, synchronizacje w złej kolejności, tekst poza akapitem;
- odczytuje każdy język: pierwszy jako język napisów, pozostałe jako ich tłumaczenia;
- zachowuje kursywę, pogrubienie, podkreślenie, przekreślenie i kolor, zarówno z tagów, jak i z arkusza stylów;
- bierze wiersze Source jako mówców, gotowych do dubbingu;
- kończy ostatni napis tam, gdzie wskazują
Metricspliku, albo po czterech sekundach; - dekoduje dowolne kodowanie, w tym CP949.
Eksport SAMI
Eksportuj, a następnie Napisy i SAMI, oferuje:
- TekstOryginał, tłumaczenie lub oba jako dwa języki.
- Nazwy mówcówPominięte, przed tekstem (Thom: …) albo jako wiersze Source, we własnym sposobie SAMI.
- FormatowanieZachowane albo usunięte.
- Przesunięcie czasuKażdy napis wcześniej lub później o tyle samo.
- KodowanieUTF-8, z lub bez znacznika kolejności bajtów, UTF-16, Windows-1252 albo CP949 dla starszych koreańskich odtwarzaczy.
- Zakończenia wierszyLinux i macOS albo Windows.
Plik to SAMI 1.0 zapisany tak, jak robi to przykład Microsoftu, z tagami wielkimi literami: klasa dla każdego języka, synchronizacja tam, gdzie zaczyna się napis, i pusta tam, gdzie się kończy, a formatowanie jako <I>, <B>, <U>, <S> i <FONT color>.
Nadaj plikowi nazwę wideo: tears-of-steel.smi obok tears-of-steel.mp4. Windows Media Player znajduje .smi w ten sposób (a .sami już nie), i tak samo robi większość odtwarzaczy.
Ciekawostki
Microsoft wydał SAMI latem 1998 roku, w ramach swoich prac nad dostępnością: napisy na komputerze dla osób głuchych i niedosłyszących.
Specyfikacja Microsoftu czyści napis spacją niełamliwą. FFmpeg odrzuca każdą synchronizację, która ją zawiera, więc gdy dalej idzie inny język, Subtitld zapisuje zamiast tego pusty akapit.
Wiele koreańskich plików nazywa klasę od kraju, a nie od języka: KRCC, tam gdzie przykłady Microsoftu mają ENUSCC.
Powiązane formaty
Otwórz go w Subtitld razem z wideo i dopasuj czasy na przebiegu fali dźwiękowej.