Przejdź do treści
SubtitleMatrix

Konwerter napisów SBV na TTML

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 SBV na TTML. Przeciągnij plik — albo wklej tekst — i otrzymasz wersję TTML. Konwersja odbywa się w całości w przeglądarce, więc nic nie jest wysyłane i nie potrzebujesz konta.

W tym kierunku nic nie ginie. Każda możliwość SBV ma odpowiednik w TTML, więc wynik to te same napisy w innym opakowaniu — oś czasu, podziały wierszy i tekst zostają. Dotyczy to każdego pliku SBV, także takiego, który wykorzystuje wszystkie możliwości formatu.

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

Przykłady

Typowy plik SBV po konwersji na TTML

Wejście

0:00:01.000,0:00:03.500
The quick brown fox.

0:00:04.000,0:00:06.250
Jumps over the lazy dog.

0:00:07.000,0:00:09.000
Two lines here.
And a second one.

Wynik

<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
  <body>
<p begin="00:00:01.000" end="00:00:03.500">The quick brown fox.</p>
<p begin="00:00:04.000" end="00:00:06.250">Jumps over the lazy dog.</p>
<p begin="00:00:07.000" end="00:00:09.000">Two lines here.<br/>And a second one.</p>  </body>
</tt>

Nic tu nie ginie: porównaj obie strony wiersz po wierszu.

Ta sama konwersja na niechlujnym wejściu

Wejście

0:00:02.000,0:00:04.000
Carriage-return line endings.

	0:00:06.000,0:00:08.000
Indented timecode, no final newline.

Wynik

<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
  <body>
<p begin="00:00:02.000" end="00:00:04.000">Carriage-return line endings.</p>
<p begin="00:00:06.000" end="00:00:08.000">Indented timecode, no final newline.</p>  </body>
</tt>

Takie uszkodzenia mają prawdziwe pliki — mieszane końce wierszy, zbłąkane odstępy, puste pola. Porównaj to z czystym przykładem wyżej, żeby zobaczyć, co parser wybacza.

Częste pytania

Jak wygląda wynik, gdy SBV staje się TTML?

Jak TTML: bez numerów bloków — każdy napis to element p z atrybutami begin i end, zagnieżdżony w elemencie body, a całość poprzedza deklaracja XML. Wynik nie zawiera elementu head ani div: to deklaracja, tt, body i elementy p. Każdy blok SBV staje się jednym blokiem TTML, w tej samej kolejności i z tym samym tekstem.

Czy czasy z SBV są dokładne w pliku TTML?

Tak, co do milisekundy — a to najdrobniejsza jednostka w obu formatach. SBV zapisuje moment jako 0:00:04.126, a TTML zapisuje ten sam moment jako 00:00:04.126; nic nie jest zaokrąglane ani przesuwane, a blok widoczny 2,9 sekundy nadal tyle trwa.

Jak blok SBV z dwóch wierszy wygląda w TTML?

Jako dwa wiersze rozdzielone elementem br, którym TTML zapisuje twardy podział wiersza. Para zostaje razem — oba wiersze SBV nadal należą do jednego elementu p w wyniku TTML, a odtwarzacz pokazuje je jednocześnie.

Czy bloki SBV zachowują kolejność w wyniku TTML?

Tak, po drodze są sortowane według czasu rozpoczęcia — najwcześniejszy pierwszy, tak jak oczekuje TTML i jak czytają je odtwarzacze. Jeśli plik SBV miał bloki poza kolejnością, wynik TTML przywraca porządek; to zmiana struktury pliku, nie treści, i jest zamierzona.

Czy mogę przekonwertować TTML z powrotem na SBV?

Tak, ale to kierunek stratny: styl, pozycjonowanie i treści specyficzne dla TTML nie mają gdzie trafić w SBV. W tę stronę nic nie ginie, więc ten koszt pojawia się tylko przy powrocie.

Czy wynik TTML zachowuje kodowanie pliku SBV?

Nie — wynik jest w UTF-8, z uniksowymi końcami wierszy i bez BOM, niezależnie od tego, czego użył plik SBV. Plik w UTF-16 albo w jednobajtowym kodowaniu Windows jest dekodowany przy wczytywaniu (panel wyniku to sygnalizuje); na wyjściu zawsze powstaje TTML w UTF-8.

Powiązane narzędzia