Konwerter napisów VTT na ASS
Albo wklej tekst napisów
Co zmienia ta konwersja
2 rzeczy zostają pominięte albo wymagają decyzji
- Dokładność
dokładność czasów — zegar wyniku jest grubszy, więc każdy znacznik czasu jest zaokrąglany do najbliższych 10 ms
- 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 WebVTT do ASS. Wrzuć plik albo wklej tekst, a dostaniesz wersję ASS z nagłówkiem skryptu, tabelą stylów i zdarzeniami Dialogue, których oczekuje odtwarzacz. Konwersja działa w całości w Twojej przeglądarce: nic nie jest wysyłane, konto nie jest potrzebne, a po wczytaniu strony działa ona dalej z wyłączoną siecią.
Oba formaty zgadzają się co do tekstu, podziałów wierszy i kolejności bloków, więc dostajesz te same napisy zapisane bogatszą składnią. Dwie różnice warto znać przed konwersją. ASS przechowuje czas w setnych sekundy, więc 00:00:01.234 musi stać się 0:00:01.23 — każdy znacznik jest zaokrąglany do najbliższych 10 ms i raport powyżej o tym mówi. ASS potrzebuje też tabeli stylów, której WebVTT nie ma odpowiednika; jeden styl Default jest dopisywany za Ciebie, Arial 20 z czarną obwódką, i możesz go potem zmienić w dowolnym narzędziu.
Co nie przechodzi, to wszystko, co WebVTT trzyma poza blokami. Linia nagłówka z komentarzem, bloki NOTE, STYLE i REGION oraz ustawienia po znaczniku czasu, takie jak align:start czy position:10%, nie mają gdzie trafić, bo ASS wyraża położenie kodami przesłony w tekście i ta konwersja ich nie wymyśla. Raport powyżej wymienia te straty, a po wczytaniu pliku mówi, ile ich w nim było.
Zniszczona wejściówka nie jest problemem: brak nagłówka, windowsowe końce wierszy, zbłąkana linia przed znacznikiem czasu albo BOM są czytane bez skargi. Jeden plik albo cały sezon; kolejka przetwarza je po kolei, możesz ją zatrzymać w połowie, a wyniki wychodzą razem jako jedno ZIP.
Przykłady
Typowy plik VTT przekonwertowany na ASS
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
[Script Info]
ScriptType: v4.00+
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: 0,0:00:04.50,0:00:08.00,Default,,0,0,0,,Second line with {\i1}italics{\i0}.
W tym wyjściu giną: precyzja i warstwy dokumentu VTT. Reszta zgadza się linia po linii.
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
[Script Info]
ScriptType: v4.00+
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,No header, two lines before the timecode.
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
Dlaczego czasy są zaokrąglane w konwersji VTT na ASS?
ASS zapisuje czas w setnych sekundy, a WebVTT w milisekundach. Blok zaczynający się o 00:00:01.234 staje się 0:00:01.23, więc każdy znacznik przesuwa się najwyżej o 5 ms. Przy oglądaniu to niewidoczne, przy porównywaniu klatek może mieć znaczenie; SRT w tym samym miejscu też ma milisekundy.
Skąd bierze się tabela stylów w wyjściu ASS przy konwersji z VTT?
Jest dopisywana, bo plik ASS bez niej się nie odtworzy. Wyjście niesie jeden styl Default — Arial 20, biały tekst z czarną obwódką — i każda linia Dialogue wskazuje właśnie na niego. VTT nie ma tabeli stylów; jej odpowiednikiem są tagi w tekście i opcjonalny blok STYLE, który w tym kierunku przepada.
Co dzieje się z ustawieniami po znaczniku czasu, takimi jak align:start lub position:10%?
Są odrzucane. ASS potrafi umieścić blok precyzyjnie, ale robi to kodami przesłony w tekście — \an7 dla lewego górnego rogu, \pos(320,240) dla dokładnego punktu — a ustawienia WebVTT to inny, uboższy słownik bez mapowania jeden do jednego. Zamiast zgadywać pozycję, konwersja zostawia tekst i raportuje ustawienie jako stratę.
Czy bloki NOTE, STYLE i REGION przetrwają do ASS?
Nie. To konstrukcje wyłącznie WebVTT i nie mają odpowiednika w ASS. Uważaj szczególnie na STYLE, bo może trzymać reguły układu całego dokumentu, a nie przelotny komentarz; takie stylowanie trzeba odbudować w ASS, jeśli jest potrzebne. ASS ma własny pełny model stylów, ale nie przenosi go z bloku CSS.
Czy poufny plik WebVTT mogę tu przekonwertować na ASS?
Tak. Plik jest czytany i zapisywany w karcie przeglądarki, więc WebVTT objęty NDA nigdy nie opuszcza komputera — nie ma wysyłania ani parsowania po stronie serwera. Wyjście powstaje lokalnie, a strona konwertuje dalej z wyłączoną siecią. VTT ma warstwy poza blokami, ASS ma nagłówek i tabelę stylów; oba zostają na dysku.