Przejdź do treści
SubtitleMatrix

Konwerter napisów SRT na SMI

Albo wklej tekst napisów

Co zmienia ta konwersja

W tym kierunku nic nie ginie — każda cecha formatu źródłowego ma gdzie trafić w formacie docelowym.

Ta lista pochodzi z macierzy możliwości tych dwóch formatów, a nie z konkretnego wczytanego pliku. Konkretny plik może stracić więcej, jeśli używa cech, które format dopuszcza, ale macierz ich nie modeluje.

Ta strona konwertuje SRT do SMI. Wrzuć plik albo wklej tekst, a dostaniesz wersję SMI. Konwersja działa w całości w Twojej przeglądarce, więc nic nie jest wysyłane i konto nie jest potrzebne.

W tym kierunku nic nie ginie. Każda cecha, którą SRT potrafi wyrazić, ma odpowiednik w SMI, więc wyjście to te same napisy w innym opakowaniu — oś czasu, podziały wierszy i tekst przechodzą. Dotyczy to każdego pliku SRT, także takiego, który używa wszystkich możliwości formatu. SAMI zapisuje moment jako Start=4126, a SRT jako 00:00:04,126; to ten sam czas co do milisekundy.

Jeden plik wystarczy, cały sezon też: kolejka przetwarza je po kolei, a wyniki wychodzą razem jako jedno ZIP.

Przykłady

Typowy plik SRT przekonwertowany na SMI

Wejście

1
00:00:01,000 --> 00:00:03,500
Hello there.

2
00:00:03,500 --> 00:00:06,000
<i>Whispering</i> now.
And a second line.

3
00:00:06,000 --> 00:00:09,250
<b>Bold</b> statement.

Wynik

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P>Hello there.
<SYNC Start=3500>
<P>&nbsp;
<SYNC Start=3500>
<P><i>Whispering</i> now.<br>And a second line.
<SYNC Start=6000>
<P>&nbsp;
<SYNC Start=6000>
<P><b>Bold</b> statement.
<SYNC Start=9250>
<P>&nbsp;
</BODY>
</SAMI>

Nic tu nie ginie: porównaj obie strony linia po linii.

Ta sama konwersja na zniszczonym wejściu

Wejście

1
0:00:01,00 --> 0:00:03,500
<B>Bold</B> and <I>italic</I>.


2
00:00:03,500 --> 00:00:06,000


3
00:00:08,000 --> 00:00:09,000
Last one.

Wynik

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P><b>Bold</b> and <i>italic</i>.
<SYNC Start=3500>
<P>&nbsp;
<SYNC Start=3500>

<SYNC Start=6000>
<P>&nbsp;
<SYNC Start=8000>
<P>Last one.
<SYNC Start=9000>
<P>&nbsp;
</BODY>
</SAMI>

To typowe uszkodzenia prawdziwych plików — mieszane końce wierszy, zbłąkane spacje, puste pola. Porównaj z czystym przykładem powyżej, żeby zobaczyć, co parser wybacza.

Częste pytania

Jak wygląda wyjście, gdy SRT staje się SMI?

Jak SMI: bez numerów bloków i bez linii znacznika czasu. Każdy blok to znacznik <SYNC Start=…> z tekstem w <P> pod nim, a zaraz po nim <P>&nbsp;, który czyści ekran, bo SYNC zastępuje wszystko, co było widoczne. Każdy blok SRT staje się jednym blokiem SMI w tej samej kolejności; SRT zapisuje ten sam moment jako 00:00:04,126.

Czy czasy SRT są dokładne w pliku SMI?

Tak, co do milisekundy — to najdrobniejsza jednostka obu formatów. SRT zapisuje moment jako 00:00:04,126, a SMI ten sam moment jako Start=4126; nic nie jest zaokrąglane ani przesuwane, a blok widoczny przez 2,9 sekundy nadal tyle trwa. SMI liczy czas w milisekundach od początku, SRT w godzinach, minutach i sekundach.

Jak blok SRT z dwiema liniami wychodzi w SMI?

Jako dwie linie z <br> między nimi — tak SAMI zapisuje twardy podział wiersza. Parowanie zostaje: dwie linie SRT nadal należą do jednego bloku i odtwarzacz pokaże je razem. SRT trzyma ten sam podział jako zwykły znak nowej linii.

Czy bloki SRT zachowują kolejność w pliku SMI?

Tak, po drodze są sortowane po czasie rozpoczęcia. Jeśli plik SRT miał bloki poza kolejnością, SMI je uporządkuje; to zmiana struktury, nie treści. SRT dopuszcza taką kolejność w pliku, ale odtwarzacze czytają po czasie, więc uporządkowanie jest świadome.

Czy mogę przekonwertować SMI z powrotem na SRT?

Tak, i to jest kierunek stratny: stylowanie, pozycjonowanie i treść specyficzna dla formatu nie mają gdzie trafić w SRT. W tę stronę nic nie ginie, więc koszt pojawia się dopiero przy powrocie. SMI ma <SYNC> i atrybuty HTML, SRT tylko numer, znacznik czasu i tekst.

Czy wyjściowy SMI zachowuje kodowanie pliku SRT?

Nie — wyjście jest w UTF-8, z uniksowymi końcami wierszy i bez BOM. Plik w UTF-16 albo windowsowym kodowaniu jednobajtowym jest dekodowany na wejściu, o czym mówi panel wyniku. SRT bywa w różnych kodowaniach; SMI z tej strony zawsze wychodzi taki sam.

Powiązane narzędzia