TTML-undertekstformat
Hvad dette format kan udtrykke
- Tekstformatering
- Skrifter, farve, kontur, skygge
- Placering på skærmen
- Ja
- Karaoke-timing
- Nej
- Linjeskift inde i en tekstblok
- Ja
- Tidslinje
- Start- og sluttid for hver tekstblok
- Tidsopløsning
- 1 ms
- Tider gemt som billednumre
- Nej
- Højre-til-venstre-tekst
- Ja
Eksempler
En typisk TTML-fil, og hvad der læses ud af 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>
Hvad den indeholder
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 positionHøjre side er ikke en konverteret fil – det er, hvad dette site læser ud af venstre side, og udgangspunktet for enhver konvertering af filen.
En beskidt TTML-fil, og hvad der stadig læses ud af 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>
Hvad den indeholder
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)Virkelige filer kommer med BOM, Windows-linjeskift, en løs linje før tidskoden eller en tidskode, der slet ikke kan læses. Intet kaster en fejl: det, der ikke kan forstås, rapporteres i stedet for at forsvinde.
Konverter TTML (Timed Text) til et andet format
Hver af disse kører helt i din browser. Etiketterne siger, hvad den retning koster, før du åbner den.
- Præcision
- Formatspecifikt indhold
- Formatering
- Placering
- Formatspecifikt indhold
- Formatspecifikt indhold
- Timing
- Formatering
- Placering
- Præcision
- Formatspecifikt indhold
- Formatering
- Placering
- Billedhastighed
- Formatspecifikt indhold
- Formatering
- Placering
- Formatspecifikt indhold
- Formatering
- Formatspecifikt indhold
- Formatering
- Placering
- Formatspecifikt indhold
- Præcision
- Formatspecifikt indhold
- Timing
- Formatering
- Placering
- Linjeskift
- Formatspecifikt indhold
- Formatering
- Placering
- Formatspecifikt indhold
Konvertering til dette format
- SubRip (SRT) → TTML (Timed Text)
- WebVTT (VTT) → TTML (Timed Text)
- Advanced SubStation Alpha (ASS) → TTML (Timed Text)
- SubStation Alpha (SSA) → TTML (Timed Text)
- YouTube SBV → TTML (Timed Text)
- SAMI (SMI) → TTML (Timed Text)
- LRC Lyrics → TTML (Timed Text)
- MicroDVD → TTML (Timed Text)
- SubtitleMatrix JSON → TTML (Timed Text)
- Plain Text (TXT) → TTML (Timed Text)
- CSV Spreadsheet → TTML (Timed Text)
TTML (Timed Text) er et af de tolv undertekstformater, som dette site håndterer. Denne side er opslagsværket for TTML: hvad formatet kan gemme, hvad det ikke kan, og en side for hvert format, du kan konvertere det til.
Tabellen ovenfor er den fulde liste for TTML – der findes ingen skjult funktionsliste. Når en række siger nej, er det præcis det, der går tabt ved at konvertere til TTML, og hver konverteringsside siger det, før du åbner en fil. En TTML-fil er XML med <tt>, <head>, <body>, <div> og <p>; hver <p> er en tekstblok.
Alle konverteringer fra TTML kører i browseren. Intet uploades, og der kræves ingen konto, når du konverterer TTML-filer, hvilket betyder noget for materiale under en fortrolighedsaftale, en patientjournal eller et udsendelsesstop.
Ofte stillede spørgsmål
Hvad er en TTML-fil?
TTML (Timed Text) er XML-formatet bag EBU-TT-D, IMSC og Netflix. En tekstblok er et <p>-element med begin og end, og styles og regions defineres i <head> og refereres fra <p>.
Hvilken formatering gemmer TTML?
TTML har fuld styling via tts:-attributter og <style>-definitioner i <head>. En <p> kan referere en style og en region, og begge følger med, når filen læses.
Kan TTML gemme placering og karaoke?
TTML placerer tekst via <region>-definitioner med tts:origin og tts:extent. Karaoke findes ikke, så karaoketags fra ASS eller JSON har ingen plads i TTML.
Hvilke formater kan TTML konverteres til uden tab?
Ingen ifølge kapacitetstabellen. Hver retning fra TTML taber mindst én ting – typisk tidslinjen, formateringen eller formatets særindhold. Hver konverteringsside navngiver sit eget tab.
Hvordan håndterer læseren en beskadiget TTML-fil?
Frametal læses via ttp:frameRate og frameRateMultiplier; en <p> uden egen begyndelsestid arver ikke fra <div> og droppes med en note. Det er den læsning, du får for TTML.
Hvilke tidsformer accepterer TTML?
Fire: klokketid som 00:00:01.000, offsets som 1.5s eller 250ms, frame-tal som 00:00:01:12 og frame-offsets som 36f. Frame-formerne kræver ttp:frameRate; det, der skrives ud, er altid klokketid. Det er reglerne for TTML.