Hopp til hovedinnhold
SubtitleMatrix

TTML til SRT

Eller lim inn underteksttekst

Hva denne konverteringen endrer

3 ting slippes eller trenger en avgjørelse

  • Formatering

    all formatering (fet, kursiv, farge, kontur, skygge)

  • Plassering

    plassering på skjermen (hver tekstblokk går tilbake til standardposisjonen)

  • Formatspesifikt innhold

    innhold som kildeformatet oppbevarer utenfor tekstblokkene (blokker utenom tekstblokkene, topptekst, innstillinger per tekstblokk, kommenterte hendelser) — målformatet har ingen plass til det

Denne listen kommer fra egenskapsmatrisen for disse to formatene, ikke fra den bestemte filen du lastet inn. En bestemt fil kan miste mer hvis den bruker egenskaper formatet tillater, men matrisen ikke modellerer.

Denne siden konverterer TTML til SRT: slipp inn en fil eller lim inn teksten, og du får SRT-versjonen tilbake med tekstblokkene fra TTML i behold.

Det er en reell forskjell på TTML og SRT: stiltabellen og den navngitte stilen forsvinner — skrift, størrelse, farge, omriss og skygge — mens innebygde tagger for fet og kursiv blir med som tekst; plasseringen forsvinner, og hver tekstblokk faller tilbake til standardplassen; SRT har ingen plass til innholdet TTML oppbevarer utenfor tekstblokkene.

Listen over filboksen er regnet ut fra hva TTML og SRT kan uttrykke, ikke fra filen din, så svaret er det samme før du laster opp noe.

En hel sesong med TTML-filer går gjennom SRT-konverteringen i én kjøring: hver fil behandles for seg, du kan avbryte underveis, og resultatene lastes ned som én ZIP.

Fordi TTML-til-SRT-konverteringen kjører lokalt i nettleseren, forlater filen din aldri maskinen.

Eksempler

En typisk TTML-fil konvertert til SRT

Inndata

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

Resultat

1
00:00:01,000 --> 00:00:03,500
Hello <i>there</i>.

2
00:00:03,500 --> 00:00:06,000
How are you?
Fine, thanks.

Dette går tapt i utdataen: formatering, plassering og metadata.

Samme TTML-til-SRT-konvertering med vanskelig inndata

Inndata

<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling"
    xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
    ttp:frameRate="25" xml:lang="en">
  <body>
    <div>
      <p begin="1.5s" dur="2s">Loaded from an offset and a duration.</p>
      <p begin="4s" end="00:00:06.50">A coarser clock spelling.</p>
      <p begin="00:00:07:00" end="00:00:08:12">Frames, at 25fps.</p>
      <p begin="9s"><span tts:color="#FF0000">Half-open</span> and Tom &amp; Jerry.</p>
    </div>
  </body>
</tt>

Resultat

1
00:00:01,500 --> 00:00:03,500
Loaded from an offset and a duration.

2
00:00:04,000 --> 00:00:06,500
A coarser clock spelling.

3
00:00:07,000 --> 00:00:08,480
Frames, at 25fps.

4
00:00:09,000 --> 00:00:11,000
<font color="#FF0000">Half-open</font> and Tom &amp; Jerry.

Slik ser skader på ekte filer ut — blandede linjeskift, løse mellomrom, tomme felt. Sammenlign med det ryddelige eksempelet over for å se hva TTML-parseren tilgir.

Ofte stilte spørsmål

Hva går tapt når TTML blir SRT?

Dette: stiltabellen og den navngitte stilen forsvinner — skrift, størrelse, farge, omriss og skygge — mens innebygde tagger for fet og kursiv blir med som tekst; plasseringen forsvinner, og hver tekstblokk faller tilbake til standardplassen; SRT har ingen plass til innholdet TTML oppbevarer utenfor tekstblokkene. På kildesiden har TTML XML-elementer med stiler, plassering og millisekunder; på målsiden har SRT tekstblokker med start- og sluttid, millisekunder og innebygde tagger i selve teksten, og derfor kommer de nevnte tingene ikke med. Teksten og rekkefølgen kommer over.

Hvordan skrives tidsstemplene om fra TTML til SRT?

En tid i TTML ser slik ut: `begin="00:00:04.126"` og `end="…"`. I SRT skrives den som `00:00:04,126` — timer, minutter, sekunder og millisekunder, med komma foran millisekundene. Begge formatene bruker samme oppløsning, så ingen avrunding skjer. Rekkefølgen er den samme, og ingen tekstblokk flyttes mer enn avrundingen tilsier.

Hva skjer med formateringen fra TTML i SRT?

Stiltabellen i TTML forsvinner — skrift, størrelse, marger, omriss og navngitte stiler — men de innebygde taggene for fet, kursiv og farge skrives om til SRTs egne tagger og overlever. Det er stilen som er tapt, ikke all formatering.

Hvordan ser en SRT-fil ut når den er laget fra TTML?

SRT er en nummerert tekstblokk, en tidslinje med `-->` og én eller flere tekstlinjer, med en tom linje mellom blokkene. Konverteringen fra TTML fyller den formen: hver tekstblokk blir én SRT-blokk, i samme rekkefølge, med TTML-ens tekst delt i de samme linjene.

Kan jeg konvertere SRT tilbake til TTML, og hva går tapt da?

Ja, og den veien er også tapsfri: SRT og TTML uttrykker de samme tingene, så en runde tilbake gir de samme tekstblokkene og tidsstemplene.

Beholder SRT plasseringen som TTML beskriver?

Nei. TTML kan plassere en tekstblokk på skjermen, men SRT har ingen posisjonsmodell — noen verktøy skriver `{\anN}` som ren tekst, men det er ikke det denne konverteringen gjør. Hver tekstblokk faller tilbake til spillerens standardplass.

Hva gjør SRT med en tekstblokk fra TTML som har flere linjer?

Den beholder linjene. TTML og SRT uttrykker begge flere linjer per tekstblokk, og konverteringen skriver linjeskiftet ved å legge linjene under hverandre i samme blokk i stedet for å slå sammen teksten.

Hva skjer med kommentarer og metadata i TTML når filen blir SRT?

TTML kan ha XML-prologen og stil- og layoutdefinisjonene i `<head>` utenfor tekstblokkene. SRT har ingenting — SRT lagrer tekstblokker og ikke noe annet; derfor registreres dette som tap, og det er tekstblokkene som kommer med videre.

Blir tidsstemplene nøyaktige i konverteringen fra TTML til SRT?

TTML og SRT har begge 1 ms oppløsning, så tidsstemplene går over uten avrunding og uten at noen tekstblokk flyttes.

Relaterte verktøy