Gå till huvudinnehållet
SubtitleMatrix

TTML-undertextformat

Vad det här formatet kan uttrycka

Textformatering
Typsnitt, färg, kontur, skugga
Positionering på skärmen
Ja
Karaoketider
Nej
Radbrytningar inuti ett textblock
Ja
Tidslinje
Start- och sluttid för varje textblock
Tidsupplösning
1 ms
Tider lagrade som bildnummer
Nej
Höger-till-vänster-text
Ja

Exempel

En typisk TTML-fil och vad som läses ut ur 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>

Vad den innehåller

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

Den högra sidan är inte en konverterad fil – det är vad den här sidan läser ut ur den vänstra, och vad varje konvertering av filen utgår från.

En stökig TTML-fil och vad som fortfarande läses ut

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>

Vad den innehåller

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)

Riktiga filer kommer med BOM, Windows-radbrytningar, en lös rad före en tidskod eller en tidskod som inte går att läsa. Inget kastar ett fel: det som inte förstås rapporteras i stället för att tappas tyst.

Konvertera TTML (Timed Text) till ett annat format

Var och en av dessa körs helt i din webbläsare. Etiketterna säger vad den riktningen kostar innan du öppnar den.

Konvertera in i det här formatet

Här är referenssidan för TTML (Timed Text): vad formatet kan lagra, vad det inte kan lagra och en sida för varje format du kan konvertera det till. TTML skriver tiden i begin- och end-attribut som 00:00:04.126, med millisekunder. Ett TTML-textblock är ett <p>-element med begin och end inuti ett XML-dokument.

Tabellen ovan är hela listan – det finns ingen dold funktionslista. När en rad säger nej är det precis vad som går förlorat när du konverterar till TTML; åt andra hållet namnger varje konverteringssida nedan sin egen förlustlista. Ingen riktning är förlustfri: varje målformat saknar något som det här formatet kan uttrycka.

Alla konverteringar körs i webbläsaren. Inget laddas upp och inget konto behövs, vilket spelar roll för material under NDA, patientjournaler eller ett sändningsembargo.

Vanliga frågor

Vad är en TTML-fil?

TTML skriver tiden i begin- och end-attribut som 00:00:04.126, med millisekunder. Ett TTML-textblock är ett <p>-element med begin och end inuti ett XML-dokument.

Vilka stilar kan en TTML-fil lagra?

TTML har en <styling>-tabell med namngivna stilar och en <layout>-tabell med regioner i <head>. TTML sparar när ett textblock börjar och slutar, inte när en stavelse markeras.

Sparar TTML både start- och sluttid?

Ja. TTML skriver tiden i begin- och end-attribut som 00:00:04.126, med millisekunder. Tidsangivelsen har 1 ms upplösning och är exakt inom den upplösningen.

Vilka format kan jag konvertera TTML till utan förlust?

För TTML är ingen riktning förlustfri: varje målformat saknar något som det här formatet kan uttrycka, och varje konverteringssida namnger sin egen lista.

Vad finns utanför textblocken i en TTML-fil?

I en TTML-fil: XML-deklarationen och hela <head> med <styling>, <layout> och <metadata>. Det som inte får plats i målformatet rapporteras som formatdata i stället för att tappas tyst.