Hopp til hovedinnhold
SubtitleMatrix

TTML-undertekstformat

Hva dette formatet kan uttrykke

Tekstformatering
Skrifter, farge, kontur, skygge
Plassering på skjermen
Ja
Karaoketiming
Nei
Linjeskift inne i en tekstblokk
Ja
Tidslinje
Start- og sluttid for hver tekstblokk
Tidsoppløsning
1 ms
Tid lagret som bildenummer
Nei
Tekst fra høyre til venstre
Ja

Eksempler

En typisk TTML-fil, og hva som leses ut av den

Fil

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

Hva den inneholder

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

Høyre side er ikke en konvertert fil — det er det denne siden leser ut av venstre side, og det hver konvertering av filen starter fra.

En vanskelig TTML-fil, og hva som fortsatt leses ut av den

Fil

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

Hva den inneholder

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)

Ekte filer kommer med BOM, Windows-linjeskift, en løs linje før en tidslinje eller en tidslinje som ikke kan leses i det hele tatt. Ingenting kaster: det som ikke kan forstås, rapporteres i stedet for å forsvinne i stillhet.

Konverter TTML (Timed Text) til et annet format

Hver av disse kjører helt i nettleseren din. Etikettene sier hva den retningen koster, før du åpner den.

Konvertering inn til dette formatet

TTML (Timed Text) samler alt denne siden vet om formatet — hva det uttrykker, hva som mangler, og hvor du kan konvertere det videre.

Tabellen over er hele TTML-listen — det finnes ingen skjult funksjonsliste. Når en rad sier nei, er det nøyaktig det som går tapt ved å konvertere til TTML, og hver konverteringsside nedenfor sier det før du åpner en fil.

Alle TTML-konverteringene nedenfor kjører i nettleseren din — ingenting lastes opp, og du trenger ingen konto, noe som betyr noe for materiale under NDA, i en pasientjournal eller under sendeforbud.

Ofte stilte spørsmål

Hva er en TTML-fil?

En TTML-fil er XML med `<tt>`, `<body>` og ett `<p>`-element per tekstblokk. Start- og sluttid med millisekunders oppløsning. Det er formatet kringkasting og strømmetjenester bruker når teksten skal følge en XML-standard.

Lagrer TTML formatering?

TTML har full formatering: stiler i `<head>` og `tts:`-attributter på `<span>`. Det er en egenskap ved TTML som følger med når formatet konverteres videre.

Lagrer hver TTML-tekstblokk både start- og sluttid?

TTML lagrer begge: start- og sluttid med millisekunders oppløsning. Et tidspunkt skrives som `begin="00:00:04.126"` og `end="…"`, så det er ingen tvil om hvor en tekstblokk begynner og slutter.

Hvilke formater kan jeg konvertere TTML til uten tap?

Ingen av dem: hver retning ut av TTML mister noe, og hver konverteringsside navngir sin egen liste. Velg målformat etter hvilken liste du kan leve med.

Hva oppbevarer en TTML-fil utenfor tekstblokkene?

TTML kan ha XML-prologen og stil- og layoutdefinisjonene i `<head>`. Det er nettopp dette som går tapt når filen konverteres til et format uten samme blokk utenfor tekstblokkmodellen.