Przejdź do treści
SubtitleMatrix

Konwerter napisów CSV 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 zamienia CSV na TTML. Upuść plik — albo wklej tekst — a dostaniesz wersję TTML. Konwersja odbywa się 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. Wszystko, co wyraża CSV, wyraża też TTML, więc wynik to te same napisy w innym opakowaniu — oś czasu, podział wierszy i tekst zostają. Czasy trafiają do atrybutów begin i end co do milisekundy, więc dokładność jest ta sama co w CSV.

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

Przykłady

Typowy plik CSV zamieniony na TTML

Wejście

start,end,text
00:00:01.000,00:00:03.500,The quick brown fox.
00:00:04.000,00:00:06.250,"Jumps over, the lazy dog."
00:00:07.000,00: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 niewygodnym wejściu

Wejście

id,start,end,note,text
1,00:00:01,000,00:00:04,000,cue one,"Hello there, friend."
2,00:00:05.000,00:00:07.000,cue two,Second line.
bad,notatime,00:00:09.000,cue three,Unreadable start.
4,00:00:10.000,00:00:09.000,cue four,End before start.
5,00:00:12.000,00:00:14.000,cue five,Unquoted comma in text, right here.

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:04.000">Hello there, friend.</p>
<p begin="00:00:05.000" end="00:00:07.000">Second line.</p>
<p begin="00:00:10.000" end="00:00:10.001">End before start.</p>
<p begin="00:00:12.000" end="00:00:14.000">Unquoted comma in text, right here.</p>  </body>
</tt>

Tak wyglądają prawdziwe tabele: nagłówek z innymi nazwami, znacznik czasu bez cudzysłowów, pusta komórka. Porównaj z czystym przykładem powyżej, żeby zobaczyć, co parser wybacza.

Częste pytania

Jak wygląda wynik, gdy CSV 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 body, a nad całym dokumentem stoi deklaracja XML. Każdy blok CSV staje się jednym blokiem TTML, w tej samej kolejności i z tym samym tekstem.

Czy czasy z CSV są w TTML dokładne?

Tak, co do milisekundy — a drobniej nie zapisuje ani CSV, ani TTML. Oba formaty notują chwilę tak samo, 00:00:04.126, więc znaczniki wychodzą znak w znak takie, jakie weszły.

Co dzieje się z dwuwierszowym blokiem CSV w TTML?

Staje się dwoma wierszami z <br/> między nimi, bo tak TTML zapisuje twarde przejście do nowej linii. Więź zostaje — oba wiersze z komórki CSV nadal tworzą jeden blok w wyniku TTML i odtwarzacz pokazuje je razem.

Czy w CSV na TTML bloki zachowują kolejność?

Tak, a po drodze są sortowane po czasie startu — najwcześniejsze pierwsze, tak jak oczekuje każdy format na tej stronie i jak czytają je odtwarzacze. Jeśli Twój plik CSV miał bloki w innej kolejności, wynik TTML je uporządkuje; to zmiana struktury pliku, nie treści, i jest zamierzona.

Czy mogę przekonwertować TTML z powrotem na CSV?

Tak, ale to kierunek stratny: stylizacja, pozycjonowanie i nagłówek dokumentu nie mają w CSV gdzie trafić. W tę stronę nic nie ginie, więc ten koszt pojawia się dopiero przy powrocie.

Czy wynik TTML zachowa kodowanie pliku CSV?

Nie — wynik jest w UTF-8, z uniksowymi końcami wierszy i bez BOM, niezależnie od tego, czego używał plik CSV. Plik w UTF-16 albo w windowsowym kodowaniu jednobajtowym jest dekodowany przy wejściu (panel wyniku to sygnalizuje), a na wyjściu zawsze dostajesz ten sam TTML w UTF-8.

Powiązane narzędzia