Naar de hoofdinhoud
SubtitleMatrix

SBV naar TTML

FormaatconversieYouTube SBV
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 SBV om naar TTML. Sleep een bestand naar binnen — of plak de tekst — en je krijgt de TTML-versie terug. De conversie draait volledig in je browser, dus er wordt niets geüpload en je hebt geen account nodig.

Er gaat in deze richting niets verloren: SBV bewaart alleen tekst en tijd, en TTML kan beide bevatten. Elk SBV-blok wordt een <p>-element met een begin en een eind, in een XML-document dat elke speler kan inlezen.

Eén bestand kan, een heel seizoen ook: de wachtrij werkt ze op volgorde af en de resultaten komen samen als één ZIP binnen.

Voorbeelden

Een typisch SBV-bestand, omgezet naar TTML

Invoer

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.

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>

Hier gaat niets verloren: vergelijk beide kanten regel voor regel.

Dezelfde omzetting op een weerbarstige invoer

Invoer

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.

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

Zo ziet schade in echte bestanden eruit — gemengde regeleinden, losse spaties, blokken zonder tekst. Vergelijk dit met het nette voorbeeld hierboven om te zien wat de parser vergeeft.

Veelgestelde vragen

Hoe ziet de uitvoer eruit als SBV TTML wordt?

Als TTML: een XML-document met een declaratie, een <tt>-wortel en een <body> met <p>-elementen; er is geen <head> en geen <title>. Elk SBV-blok wordt één <p>, in dezelfde volgorde, met dezelfde tekst.

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

Ja, tot op de milliseconde. SBV schrijft 0:00:04.126 en TTML schrijft hetzelfde moment als begin="00:00:04.126"; er wordt niets afgerond of verschoven. Beide formaten rekenen in milliseconden, dus dit paar is verliesvrij.

Hoe komt een SBV-blok van twee regels in TTML uit?

Als twee regels binnen dezelfde <p>, gescheiden door een <br/>. Het paar blijft bij elkaar: de twee SBV-regels horen in de TTML-uitvoer nog steeds bij één ondertitel, en een speler toont ze samen.

Krijgt de TTML-uitvoer een kop met een taal of een titel?

Nee. De uitvoer begint met de XML-declaratie, dan <tt> en meteen <body>; er is geen <head>, dus ook geen <title> en geen xml:lang. SBV levert geen van beide, en de omzetting voegt niets toe wat er niet was.

Blijven SBV-blokken in dezelfde volgorde in TTML staan?

Ja, en ze worden onderweg op starttijd gesorteerd — vroegste eerst, de volgorde die elke speler verwacht. Stond je SBV-bestand niet in volgorde, dan zet de TTML-uitvoer het recht; dat raakt de structuur, niet de inhoud, en het is bewust gedaan.

Kan ik de TTML weer naar SBV omzetten?

Ja, en die richting heeft haar eigen lijst: TTML naar SBV verliest stijl, plaatsing en de tijdgebonden constructies die TTML kent, want SBV heeft daar geen velden voor. Die lijst verschilt van de lijst hierboven omdat beide formaten andere dingen bewaren.

Gerelateerde hulpmiddelen