Naar de hoofdinhoud
SubtitleMatrix

CSV naar TTML

Of plak ondertiteltekst

Wat deze conversie verandert

In deze richting gaat niets verloren — elk kenmerk van het bronformaat heeft in het doelformaat een plek.

Deze lijst komt uit de capaciteitenmatrix voor deze twee formaten, niet uit het bestand dat je hebt geladen. Een specifiek bestand kan meer verliezen wanneer het kenmerken gebruikt die het formaat toestaat maar de matrix niet modelleert.

Deze pagina zet CSV om naar TTML. Je sleept een bestand naar het vak of plakt de tekst erin, en je krijgt de TTML-versie terug. De conversie draait volledig in je browser: er wordt niets geüpload en je hebt geen account nodig.

In deze richting gaat niets verloren. Elke eigenschap die CSV kan uitdrukken heeft een equivalent in TTML, dus je krijgt dezelfde ondertitels in een andere verpakking: tijdlijn, regelbreuken en tekst blijven allemaal intact. Dat geldt voor elk CSV-bestand, ook eentje dat alles gebruikt wat het formaat toestaat.

Eén bestand kan, een heel seizoen ook: de wachtrij werkt ze in volgorde af en levert één ZIP op.

Voorbeelden

Een typisch CSV-bestand, omgezet naar TTML

Invoer

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

Uitvoer

<?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>

In deze uitvoer gaat niets verloren. Al het andere komt rij voor rij overeen.

Dezelfde conversie op een rommelige invoer

Invoer

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.

Uitvoer

<?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>

Zo zien echte tabellen er vaak uit: een kopregel met andere namen, een tijdcode zonder aanhalingstekens, een lege cel. Vergelijk het met het nette voorbeeld hierboven om te zien wat de parser vergeeft.

Veelgestelde vragen

Hoe ziet de uitvoer eruit als CSV TTML wordt?

Als TTML: geen bloknummers, maar elk blok is een <p>-element met begin en end, genest in een <body> (en meestal een <div>), met een XML-declaratie boven het document. Elk CSV-blok wordt één TTML-blok, in dezelfde volgorde en met dezelfde tekst.

Zijn de CSV-tijden exact in het TTML-bestand?

Ja, tot op de milliseconde — fijner gaat geen van beide formaten. Zowel CSV als TTML schrijft een moment op dezelfde manier, 00:00:04.126, dus de tijdcodes komen er teken voor teken uit zoals ze erin gingen.

Hoe komt een CSV-blok van twee regels in TTML terecht?

Als twee regels met een <br/> ertussen, want zo schrijft TTML een harde regelbreuk. Het paar blijft bij elkaar: de twee CSV-regels horen in de TTML-uitvoer nog steeds bij één ondertitel, en een speler toont ze samen.

Behouden CSV-blokken hun volgorde in de TTML-uitvoer?

Ja, en ze worden onderweg op starttijd gesorteerd: vroegste eerst, zoals elk formaat hier ze verwacht en zoals spelers ze lezen. Stond jouw CSV niet in volgorde, dan zet de TTML-uitvoer de blokken weer netjes achter elkaar. Dat verandert de structuur van het bestand, niet de inhoud, en het is bewust.

Kan ik de TTML terug naar CSV omzetten?

Ja, en die terugweg is de verliesgevende: stijl, positie en formaatspecifieke inhoud hebben in CSV geen plek. Vooruit gaat er hier niets verloren, dus die prijs betaal je pas als je keert.

Blijft de tekencodering van het CSV-bestand behouden in de TTML-uitvoer?

Nee. De uitvoer is UTF-8 met Unix-regeleinden en zonder BOM, wat het CSV-bestand ook gebruikte. Een bestand in UTF-16 of in een Windows-codering met één byte wordt bij het inlezen gedecodeerd (het resultaatpaneel zegt het als dat gebeurt); wat eruit komt is altijd dezelfde UTF-8-TTML.

Gerelateerde hulpmiddelen