Siirry pääsisältöön
SubtitleMatrix

TTML-tekstitysmuoto

MuunnoksetTTML / DFXP

Mitä tämä muoto voi ilmaista

Tekstin tyyli
Fontit, väri, ääriviiva, varjo
Sijoittelu ruudulla
Kyllä
Karaokeajoitus
Ei
Rivinvaihdot alaotsikon sisällä
Kyllä
Aikajana
Alku- ja loppuaika jokaiselle alaotsikolle
Ajoituksen tarkkuus
1 ms
Ajoitus tallennetaan ruutunumeroina
Ei
Oikealta vasemmalle -teksti
Kyllä

Esimerkit

Tyypillinen TTML-tiedosto ja mitä siitä luetaan

Tiedosto

<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling" xml:lang="en">
  <head>
    <styling>
      <style xml:id="s1" tts:color="#FFFF00" tts:fontWeight="bold"/>
    </styling>
    <layout>
      <region xml:id="bottom" tts:origin="10% 80%" tts:extent="80% 20%"/>
    </layout>
  </head>
  <body>
    <div>
      <p begin="00:00:01.000" end="00:00:03.500" region="bottom" style="s1">Hello <span tts:fontStyle="italic">there</span>.</p>
      <p begin="00:00:03.500" end="00:00:06.000" region="bottom">How are you?<br/>Fine, thanks.</p>
    </div>
  </body>
</tt>

Mitä se sisältää

2 cues, 3 lines of text

  00:00:01.000 → 00:00:03.500
    Hello there.   [italic ×1]
    [region="bottom" style="s1"]
  00:00:03.500 → 00:00:06.000
    How are you?
    Fine, thanks.
    [region="bottom"]

Outside the cues:
  prolog     an XML declaration and the namespace bindings, kept as they came in
  styling    1 × <style> — "s1", the colour and weight a paragraph points at by name
  layout     1 × <region> — "bottom", the origin and extent a paragraph points at by name
  resolved   the head is kept as it was written and is not applied here — a paragraph's style="s1" region="bottom" stays an attribute, not a colour or a screen position

Oikeanpuoleinen sarake ei ole muunnettu tiedosto vaan se, mitä tämä sivu lukee vasemmalta puolelta ja mistä jokainen TTML-muunnos alkaa.

Rikkinäinen TTML-tiedosto ja miten se luetaan

Tiedosto

<?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>
    <div begin="00:00:01.000" end="00:00:05.000">
      <p>Inherits its timing from the div, which we do not resolve.</p>
      <p begin="00:00:06.000" end="00:00:07.000">This one has its own timing.</p>
    </div>
    <!-- <p begin="00:00:08.000" end="00:00:09.000">commented out</p> -->
    <div>
      <p begin="00:00:10.000"/>
      <p begin="00:00:11.000" end="00:00:12.000">Last one.</p>
    </div>
  </body>
</tt>

Mitä se sisältää

3 cues, 2 lines of text

  00:00:06.000 → 00:00:07.000
    This one has its own timing.
  00:00:10.000 → 00:00:12.000
    (no text)
  00:00:11.000 → 00:00:12.000
    Last one.

Outside the cues:
  prolog     an XML declaration and the namespace bindings, kept as they came in
  head       none — no <styling> and no <layout>, and no paragraph points at one either
  comments   the commented-out <p> stays a comment, in the place it was written
  divs       the timings on an enclosing <div> are not pushed down onto the paragraphs inside it

Reported while reading — repaired or skipped, never silently:
  1 × paragraphs with no readable begin time of their own (they were skipped — see the note about timing inherited from an enclosing div)
  1 × paragraphs with neither an end time nor a duration of their own (their end times were generated)

Oikeat TTML-tiedostot saapuvat BOM-merkinnän, Windows-rivinvaihtojen ja lukukelvottomien aikakoodien kanssa. Jäsennin ei kaadu: se korjaa minkä voi ja kertoo loput raportissa.

Muunna TTML (Timed Text) toiseen muotoon

Jokainen näistä toimii kokonaan selaimessasi. Nimikkeet kertovat, mitä tuo suunta maksaa, ennen kuin avaat sen.

Muuntaminen tähän muotoon

TTML on XML-pohjainen tekstitysmuoto, jota käyttävät muun muassa Netflix, EBU-TT-D ja IMSC. Jokainen alaotsikko on p-elementti begin- ja end-määritteineen. Tämä sivu on TTML-muodon kuvaus: mitä se tallentaa, mitä se ei tallenna ja mihin sen voi muuntaa. Alla oleva taulukko kertoo TTML-muodon ominaisuudet – jokainen rivi on asia, joka joko säilyy tai katoaa, kun tiedosto muunnetaan toiseen muotoon.

TTML tallentaa täyden tyylittelyn: fontit, koot, värit, ääriviivat ja marginaalit. TTML tallentaa sijoittelun ruudulle. TTML ei tue karaokea. TTML tallentaa jokaiselle alaotsikolle alku- ja loppuajan millisekunnin tarkkuudella. TTML tukee monirivisiä alaotsikoita.

Alla on jokainen suunta, johon TTML-tiedosto voidaan muuntaa. Koko TTML-muunnos tapahtuu omassa selaimessasi ilman palvelinta ja ilman tiliä. Eräajossa koko TTML-kausi menee yhdellä kertaa, ajon voi keskeyttää ja tulokset saa ZIP-tiedostona.

Usein kysytyt kysymykset

Mikä on TTML-tiedosto ja mitä siihen mahtuu?

TTML on XML-pohjainen tekstitysmuoto, jota käyttävät muun muassa Netflix, EBU-TT-D ja IMSC. Jokainen alaotsikko on p-elementti begin- ja end-määritteineen. Tiedosto voi sisältää useita rivejä alaotsikkoa kohden.

Tallentaako TTML tyylejä ja sijoittelua?

TTML tallentaa täyden tyylittelyn: fontit, koot, värit, ääriviivat ja marginaalit. TTML tallentaa sijoittelun ruudulle. TTML ei tue karaokea. Rivinsisäinen muotoilu tallennetaan näin: <span>-elementit ja <br/>.

Onko jokaisella TTML-tiedoston alaotsikolla alku- ja loppuaika?

Kyllä. TTML kirjoittaa ajan muodossa begin="00:00:01.000" end="00:00:03.500", eli XML-määritteinä millisekunnin tarkkuudella, ja sekä alku että loppu ovat tiedostossa.

Mihin muotoihin TTML-tiedoston voi muuntaa ilman menetyksiä?

Ei mihinkään: jokaisessa suunnassa TTML-tiedostosta jää jotain pois, koska TTML tallentaa enemmän kuin muut formaatit. Jokainen muunnossivu kertoo oman menetyksensä ennen tiedoston valintaa.

Mitä TTML tallentaa alaotsikoiden ulkopuolella?

TTML tallentaa alaotsikoiden ulkopuolelle prologi, head-osion tyylitaulu ja alueet sekä div-rakenne. Nämä eivät ole alaotsikoita, mutta ne kuuluvat tiedostoon: muunnoksessa toiseen formaattiin ne jäävät pois, jos kohde ei tunne samaa rakennetta.

Miten TTML eroaa lähimmästä sukulaisestaan?

TTML on XML-dokumentti, WebVTT on kevyt tekstimuoto. TTML:n head-osion tyylit ja alueet eivät siirry WebVTT:hen, kun taas WebVTT:n NOTE- ja STYLE-lohkot eivät sovi TTML:n rakenteeseen.

Miten tämä sivu lukee TTML-tiedostoa, kun tiedosto on rikki?

TTML luetaan XML-rakenteena: p-elementtien begin- ja end-arvot ovat auktoriteetti, ja p-elementtien ulkopuolinen runko säilytetään ennallaan. Tuntematon elementti ei kaada lukua, vaan se raportoidaan, jos se jäisi muunnoksessa pois.