Hopp til hovedinnhold
SubtitleMatrix

SSA til TTML

FormatkonverteringSubStation Alpha (SSA)
Eller lim inn underteksttekst

Hva denne konverteringen endrer

2 ting slippes eller trenger en avgjørelse

  • Karaoke

    karaoketiming (utheving per stavelse)

  • 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 SSA til TTML: slipp inn en fil eller lim inn teksten, og du får TTML-versjonen tilbake med tekstblokkene fra SSA i behold.

Det er en reell forskjell på SSA og TTML: karaoketimingen per stavelse forsvinner; TTML har ingen plass til innholdet SSA oppbevarer utenfor tekstblokkene.

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

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

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

Eksempler

En typisk SSA-fil konvertert til TTML

Inndata

[Script Info]
Title: Example SSA
ScriptType: v4.00
Collisions: Normal

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\i1}Italic{\i0} line.
Dialogue: Marked=0,0:00:09.00,0:00:12.00,Default,,0,0,0,,Two\Nlines

Resultat

<?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>
<p begin="00:00:01.000" end="00:00:04.000">Hello there.</p>
<p begin="00:00:05.000" end="00:00:08.000"><span tts:fontStyle="italic">Italic</span> line.</p>
<p begin="00:00:09.000" end="00:00:12.000">Two<br/>lines</p>  </body>
</tt>

Dette går tapt i utdataen: karaoke og metadata.

Samme SSA-til-TTML-konvertering med vanskelig inndata

Inndata

[Script Info]
Title: Dirty SSA
ScriptType: v4.00

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: Marked=0,0:00:00.00,0:00:01.00,Default,,0,0,0,,not a subtitle
Dialogue: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,{\b1}Bold{\b0} and {\u1}underlined{\u0}.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,A soft\nbreak and a {\p1}mystery{\p0} code.

Resultat

<?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>
<p begin="00:00:01.000" end="00:00:04.000"><span tts:fontWeight="bold">Bold</span> and <span tts:textDecoration="underline">underlined</span>.</p>
<p begin="00:00:05.000" end="00:00:08.000">A soft<br/>break and a {\p1}mystery{\p0} code.</p>  </body>
</tt>

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

Ofte stilte spørsmål

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

Dette: karaoketimingen per stavelse forsvinner; TTML har ingen plass til innholdet SSA oppbevarer utenfor tekstblokkene. På kildesiden har SSA en full stiltabell, plassering, karaoke og hundredelers tider; på målsiden har TTML XML-elementer med stiler, plassering og millisekunder, og derfor kommer de nevnte tingene ikke med. Teksten og rekkefølgen kommer over.

Hvordan skrives tidsstemplene om fra SSA til TTML?

En tid i SSA ser slik ut: `0:00:04.13` — hundredeler. I TTML skrives den som `begin="00:00:04.126"` og `end="…"`. TTML har finere oppløsning enn SSA, så verdiene går rett inn uten avrunding. Rekkefølgen er den samme, og ingen tekstblokk flyttes mer enn avrundingen tilsier.

Hva skjer med formateringen fra SSA i TTML?

Den kommer over: SSA og TTML har begge full formatering, så taggene skrives om uten at fet, kursiv eller farge forsvinner.

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

TTML er XML med `<tt>`, `<body>` og ett `<p>`-element per tekstblokk. Konverteringen fra SSA fyller den formen: hver tekstblokk blir én TTML-blokk, i samme rekkefølge, med SSA-ens tekst delt i de samme linjene.

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

Ja, og den veien har sin egen tap-liste: den siste desimalen forsvinner, fordi klokken i SSA runder hvert tidsstempel til nærmeste 10 ms; SSA har ingen plass til innholdet TTML oppbevarer utenfor tekstblokkene. Det er ikke den samme listen som SSA → TTML, fordi de to formatene beholder ulike ting.

Beholder TTML plasseringen som SSA beskriver?

Ja, i den formen TTML har: TTML kan plassere tekstblokker, så SSA-ens posisjon skrives om dit i stedet for å kastes.

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

Den beholder linjene. SSA og TTML uttrykker begge flere linjer per tekstblokk, og konverteringen skriver linjeskiftet med `<br/>` mellom linjene i samme `<p>` i stedet for å slå sammen teksten.

Forsvinner karaoketimingen i SSA når jeg konverterer til TTML?

Ja. SSA kan lagre per stavelse når en linje skal lyse opp, men TTML har ingen slik instruksjon; ordene blir stående, men timingen per stavelse er borte.

Relaterte verktøy