Przejdź do treści
SubtitleMatrix

Konwerter napisów VTT na SMI

Albo wklej tekst napisów

Co zmienia ta konwersja

1 rzecz zostaje pominięta albo wymaga decyzji

  • Treści specyficzne dla formatu

    treść, którą format źródłowy trzyma poza blokami (bloki niebędące napisami, tekst nagłówka, ustawienia pojedynczych bloków, zakomentowane zdarzenia) — format docelowy nie ma dla niej miejsca

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 VTT 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.

Te dwa formaty nie przechowują tego samego: treść specyficzna dla VTT nie ma gdzie trafić w SMI. Lista powyżej bierze się z tego, co oba formaty potrafią wyrazić, a nie z Twojego pliku. Warto wiedzieć, że ustawienia pozycji z VTT, takie jak align:start i position:10%, również nie trafiają do wyjścia — lista strat pokazuje je jako treść specyficzną dla formatu, ale w praktyce oznacza to utratę położenia bloku. SMI nie dostaje żadnego atrybutu położenia.

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

Przykłady

Typowy plik VTT przekonwertowany na SMI

Wejście

WEBVTT

intro
00:00:01.000 --> 00:00:04.000
Hello there.

00:00:04.500 --> 00:00:08.000 align:start position:10%
Second line with <i>italics</i>.

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=4000>
<P>&nbsp;
<SYNC Start=4500>
<P>Second line with <i>italics</i>.
<SYNC Start=8000>
<P>&nbsp;
</BODY>
</SAMI>

W tym wyjściu giną: warstwy dokumentu VTT oraz pozycjonowanie z ustawień bloku. Tagi i czasy zostają.

Ta sama konwersja na zniszczonym wejściu

Wejście

a stray comment line
cue-id-1
00:00:01.000 --> 00:00:02.000
No header, two lines before the timecode.

Wynik

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P>No header, two lines before the timecode.
<SYNC Start=2000>
<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

Co dzieje się z blokami NOTE, STYLE i REGION z VTT w SMI?

Są odrzucane. WebVTT może nieść nagłówek, komentarze, blok stylów, definicje regionów i ustawienia bloku, a SMI nie ma na nie miejsca — przechowuje bloki, nie dokument. Same bloki, tekst i czasy przechodzą w całości. VTT trzyma ustawienia przy znaczniku czasu, SMI tylko znacznik <SYNC>.

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

Jak SMI: bez numerów bloków i bez linii znacznika czasu. Każdy blok to <SYNC Start=…> z tekstem w <P> pod nim, a zaraz po nim <P>&nbsp;, który czyści ekran. Każdy blok VTT staje się jednym blokiem SMI w tej samej kolejności; VTT zapisuje czas jako 00:00:04.126, SMI jako Start=4126.

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

Tak, co do milisekundy. VTT zapisuje moment jako 00:00:04.126, a SMI ten sam moment jako Start=4126; nic nie jest zaokrąglane ani przesuwane. Blok widoczny przez 2,9 sekundy nadal tyle trwa, a SMI liczy milisekundy od początku pliku.

Co dzieje się z pozycjonowaniem VTT w SMI?

Ustawienia takie jak align:start i position:10% nie mają odpowiednika w wyjściu SMI z tej strony, więc pozycja bloku przepada — nawet jeśli lista strat pokazuje tylko treść specyficzną dla formatu. VTT trzyma je w linii czasu, SMI nie dostaje żadnego atrybutu położenia. Jeśli pozycja jest krytyczna, wybierz format, który ją zapisuje, na przykład ASS.

Jak blok VTT z dwiema liniami wychodzi w SMI?

Jako dwie linie z <br> między nimi — tak SAMI zapisuje twardy podział wiersza. Parowanie zostaje: dwie linie VTT nadal należą do jednego bloku. W VTT były dwiema liniami w jednym bloku, w SMI są dwiema liniami pod jednym <SYNC>.

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

Tak, po drodze są sortowane po czasie rozpoczęcia. Jeśli plik VTT miał bloki poza kolejnością, SMI je uporządkuje; to zmiana struktury, nie treści. VTT czyta się po czasie, więc uporządkowanie jest świadome.

Czy wyjściowy SMI zachowuje kodowanie pliku VTT?

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. VTT bywa w UTF-8 z BOM-em; SMI z tej strony zawsze wychodzi bez niego.

Powiązane narzędzia