Konwerter napisów SRT 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 SRT do TTML. Wrzuć plik albo wklej tekst, a dostaniesz wersję TTML. 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 TTML, 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. TTML zapisuje moment jako 00:00:04.126, a SRT jako 00:00:04,126; to ten sam czas co do milisekundy, różni się tylko znak.
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 TTML
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
<?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">Hello there.</p>
<p begin="00:00:03.500" end="00:00:06.000"><span tts:fontStyle="italic">Whispering</span> now.<br/>And a second line.</p>
<p begin="00:00:06.000" end="00:00:09.250"><span tts:fontWeight="bold">Bold</span> statement.</p> </body>
</tt>
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
<?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"><span tts:fontWeight="bold">Bold</span> and <span tts:fontStyle="italic">italic</span>.</p>
<p begin="00:00:03.500" end="00:00:06.000"></p>
<p begin="00:00:08.000" end="00:00:09.000">Last one.</p> </body>
</tt>
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ę TTML?
Jak TTML: bez numerów bloków, każdy blok to element <p> z atrybutami begin i end, zagnieżdżony w <body> i <div>, z deklaracją XML nad całością. Każdy blok SRT staje się jednym blokiem TTML w tej samej kolejności. SRT zapisuje czas jako 00:00:04,126, TTML jako 00:00:04.126.
Czy czasy SRT są dokładne w pliku TTML?
Tak, co do milisekundy — to najdrobniejsza jednostka obu formatów. SRT zapisuje moment jako 00:00:04,126, a TTML ten sam moment jako 00:00:04.126; nic nie jest zaokrąglane ani przesuwane. Blok widoczny przez 2,9 sekundy nadal tyle trwa, a różnica jest wyłącznie w znaku między sekundami i milisekundami.
Jak blok SRT z dwiema liniami wychodzi w TTML?
Jako dwie linie z <br/> między nimi — tak TTML zapisuje twardy podział wiersza. Parowanie zostaje: dwie linie SRT nadal należą do jednego bloku. SRT trzyma ten sam podział jako zwykły znak nowej linii w tekście bloku.
Czy bloki SRT zachowują kolejność w pliku TTML?
Tak, po drodze są sortowane po czasie rozpoczęcia. Jeśli plik SRT miał bloki poza kolejnością, TTML je uporządkuje; to zmiana struktury, nie treści. SRT dopuszcza taką kolejność w pliku, podczas gdy TTML zwykle zakłada uporządkowane elementy.
Czy mogę przekonwertować TTML 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. TTML ma pełny model stylów, SRT tylko tekst z dwoma czasami.
Czy wyjściowy TTML zachowuje kodowanie pliku SRT?
Nie — wyjście jest w UTF-8, z uniksowymi końcami wierszy i bez BOM, niezależnie od tego, czego użył plik SRT. 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; TTML z tej strony zawsze wychodzi taki sam.