informační web o tvorbě titulků
o.titulkování.cz

blog

informační web o.titulkování.cz
pro vás připravil týmTitulkování.cz
profesionální tvorba titulků
Procházíte téma:
vše (14)
← novější (5) | starší (8) →
 

Formát TTML

téma: formáty titulků
autor: Michal Staša
datum: 23. prosince 2013, 13:10
odkaz: https://www.titulkovani.cz/o-titulkovani/index.php?blog=format-ttml

Formát titulků TTML (Timed Text Markup Language) je na tom podobně jako dříve představený formát WebVTT. Oba formáty začaly vznikat pro použití v elementu track v HTML5. Úvod ke značce video tedy tentokrát přeskočím a odkážu se na předchozí díl našeho seriálu o formátech titulků. Ostatně předchozí příspěvek o WebVTT bude pro dnešní díl poměrně užitečný.

Formát WebVTT se inspiroval formátem SRT – odnesl si tak jeho jednoduchost a možnost jednoduchého čtení lidmi. Formát TTML šel opačnou cestou a je založen na XML, tedy obecném značkovacím jazyce. XML je na první pohled hůře srozumitelný formát, nicméně je vyhovující pro strojové zpracování. Na půdě standardizace HTML5 sice nyní převažují větší sympatie k WebVTT, nicméně TTML si díky svým vlastnostem a rozšířitelnosti našel příznivce v oblasti televizního a filmového průmyslu. Např. nově vzníkající formát EBU-TT, který vyvíjí Evropská vysílací unie, je založen na TTML a má ambice nahradit letitý formát EBU STL (o tom asi příště). Máme tak na světě dva moderní formáty titulků (WebVTT a TTML), které si trochu konkurují. V tuto chvíli výsledek soupeření pravděpodobně dopadne tak, že TTML zůstane spíše „průmyslovým“ standardem a WebVTT se stane formátem pro široké masy internetu. Je třeba ale doplnit, že na rozdíl od WebVTT byla již finální specifikace TTML vydána a TTML je trochu napřed.

Mimochodem dřívější označení formátu TTML bylo DFXP (Distribution Format Exchange Profile) a někde je tak stále tento formát označovaný. Nicméně nyní již k představení samotného formátu. Jedná se o klasický textový soubor s XML strukturou a pokud znáte HTML/XML, nebude pro vás zápis překvapením. Jednoduchý titulek může vypadat třeba takto:

<p begin="00:00:00.000" end="00:00:02.000">
Titulek<br/>
na dvou řádcích
</p>

Schopnosti formátu jsou nasnadě: široké možnosti stylování, umístění textu v rámci obrazu, využití metadat apod. – tedy vše, co by moderní formát titulků měl umět. Styly, umístění (regiony) a další nastavení se definují v hlavičce (head). V těle (body) jsou pak jednotlivé titulky.

Následující příklad obsahuje pro vyzkoušení několik možností formátu. První titulek není navázán na žádný region, další jsou v jednom ze čtyř definovaných regionů. Zajímavostí je třetí region, který by měl postupně zprůhledňovat písmo. Čtvrtý region by měl posouvat svoje umístění.


<?xml version="1.0" encoding="utf-8"?>
<tt xmlns="http://www.w3.org/ns/ttml"
    xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
    ttp:timeBase="media"
    xmlns:tts="http://www.w3.org/ns/ttml#styling"
    xml:lang="cs"
    xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
    tts:extent="450px 360px">
  <head>
    <metadata>
      <ttm:title>Ukázka titulků TTML</ttm:title>
      <ttm:desc>Zde si ukážeme možnosti TTML.</ttm:desc>
    </metadata>
    <styling>
      <style id="s0" tts:backgroundColor="black" tts:fontStyle="normal" tts:fontSize="16" tts:fontFamily="sansSerif" tts:color="white" />
    </styling>
    <layout>
     <region xml:id="r1">
      <style tts:extent="306px 114px"/>
      <style tts:backgroundColor="red"/>
      <style tts:color="white"/>
      <style tts:displayAlign="after"/>
      <style tts:padding="3px 40px"/>
     </region>
     <region xml:id="r2">
	  <style tts:origin="40px 40px"/>
      <style tts:extent="306px 114px"/>
      <style tts:backgroundColor="red"/>
      <style tts:color="white"/>
      <style tts:displayAlign="after"/>
      <style tts:padding="3px 40px"/>
     </region>
     <region xml:id="r3">
      <style tts:extent="306px 114px"/>
      <style tts:backgroundColor="red"/>
      <style tts:color="white"/>
      <style tts:displayAlign="after"/>
      <style tts:padding="3px 40px"/>
      <set begin="50s" dur="1s" tts:opacity="1.00"/>
      <set begin="54s" dur="1s" tts:opacity="0.75"/>
      <set begin="57s" dur="1s" tts:opacity="0.50"/>
      <set begin="59s" dur="1s" tts:opacity="0.25"/>
     </region>
     <region xml:id="r4">
      <set dur="1s" tts:origin=" 8c 14c"/>
      <set dur="1s" tts:origin=" 2c  2c"/>
      <set dur="1s" tts:origin=" 8c 14c"/>
      <set dur="1s" tts:origin="14c  4c"/>
      <set dur="1s" tts:origin=" 8c 14c"/>
      <style tts:extent="24c 2c"/>
      <style tts:backgroundColor="red"/>
      <style tts:color="white"/>
      <style tts:displayAlign="after"/>
      <style tts:padding="3px 40px"/>
     </region>
    </layout>
  </head>
  <body style="s0">
    <div>
      <p begin="00:00:06:15" id="p0" end="00:00:08:00">Lve Nikolajeviči,</p>
      <p region="r1" begin="00:00:08:03" id="p1" end="00:00:11:17">napadlo vás někdy,<br />že nemáme pohlavní orgány?</p>
      <p region="r2" begin="00:00:15:10" id="p2" end="00:00:18:05">Je to zvláštní,<br />Jevgeniji Pavloviči,</p>
      <p region="r1" begin="00:00:18:08" id="p3" end="00:00:22:18">mluvil jsem o tom včera s knížetem<br />Vasilijem Maximem Leonovičem.</p>
      <p region="r1" begin="00:00:22:21" id="p4" end="00:00:24:02">Byl mrzutý.</p>
      <p region="r1" begin="00:00:24:15" id="p5" end="00:00:26:04">Došli jsme k závěru,</p>
      <p region="r1" begin="00:00:26:07" id="p6" end="00:00:29:03">že nemáme<br />a že nebudeme mít ani potomky.</p>
      <p region="r1" begin="00:00:29:23" id="p7" end="00:00:32:22">Možná je to nevhodné téma, ale,</p>
      <p region="r1" begin="00:00:33:01" id="p8" end="00:00:36:22">Lve Nikolajeviči,<br />představte si, kdybychom je měli.</p>
      <p region="r1" begin="00:00:37:01" id="p9" end="00:00:39:07">Mohli bychom se množit!</p>
      <p region="r1" begin="00:00:42:15" id="p10" end="00:00:45:14">Soňa Jepančinová<br />mi poslal psaní.</p>
      <p region="r4" begin="00:00:45:17" id="p11" end="00:00:49:07">Je v tom přesně to,<br />co říkáte. Ach!</p>
      <p region="r3" begin="00:00:50:14" id="p12" end="00:00:54:01">-Co jste jí odpověděl?<br />-Napsal jsem jí báseň.</p>
      <p region="r3" begin="00:00:54:10" id="p13" end="00:00:57:12">Soňo! Má drahá rozmilá!</p>
      <p region="r3" begin="00:00:57:15" id="p14" end="00:00:59:20">Dítě jste mi nepovila.</p>
      <p region="r3" begin="00:00:59:23" id="p15" end="00:01:02:20">Dobře totiž vím, že nemáte čím.</p>
    </div>
  </body>
</tt>

Použití podmiňovacího způsobu v popisu předchozího příkladu není zvoleno náhodou. Oproti formátu WebVTT je podpora formátu TTML v jednotlivých prohlížečích tristní, v podstatě nulová, a pravděpodobně nebude díky příklonu k WebVTT v blízké době lepší. Je tedy obtížné titulky jednoduše vyzkoušet. Na straně tvorby je podpora také velmi malá (pouze tradičně nezklame editor SubtitleEdit – hloubku implementace formátu nicméně neznám). Základní podporu formátu TTML deklaruje Youtube. Vyzkoušet si podporu vašeho prohlížeče můžete zde:

o.titulkovani.cz/ttml

Pro další poznání formátu TTML doporučuji si pročíst specifikaci a trochu googlovat. Pokud něco objevíte, napište do komentářů.

Specifikace formátu TTML
Příspěvek na téma WebVTT vs. TTML

Celé jméno:

Váš email:

Komentář:

Ověření, že nejste robot:

Nechť jsou komentáře věcné, bez vulgarit a podepsány celým jménem (uvedení emailu je dobrovolné). Nedodržení těchto pravidel může vést ke smazání komentáře. Maximální délka je 500 znaků (bajtů). Používejte pouze běžné znaky. Zapovězeny jsou značkovací jazyky (např. HTML).