Gå till huvudinnehållet
SubtitleMatrix

Konvertera TTML till SSA

Eller klistra in undertexttext

Vad den här konverteringen ändrar

2 saker tappas eller kräver ett beslut

  • Precision

    tidsprecision – utdatans klocka är grövre, så varje tidsstämpel avrundas till närmaste 10 ms

  • Formatspecifikt innehåll

    innehåll som källformatet behåller utanför sina textblock (block som inte är textblock, rubriktext, inställningar per textblock, utkommenterade händelser) – målformatet har ingen plats för det

Den här listan kommer från kapacitetsmatrisen för de här två formaten, inte från den specifika fil du laddade. En viss fil kan förlora mer om den använder funktioner som formatet tillåter men matrisen inte modellerar.

Den här sidan konverterar en TTML-fil till SSA. TTML skriver tiden i begin- och end-attribut som 00:00:04.126, med millisekunder. SSA skriver en tidpunkt som 0:00:04.13, alltså i hundradels sekunder. Ett TTML-textblock är ett <p>-element med begin och end inuti ett XML-dokument. Ett SSA-textblock är en Dialogue-rad med Marked, start, slut, stil, marginaler och text. SSA räknar i hundradels sekunder, alltså grövre än TTML; varje tid avrundas till närmaste 10 ms, och felet blir högst 5 ms.

Det som inte följer med: tidsprecisionen och formatdata. Målformatets klocka är grövre: varje tid avrundas till närmaste 10 ms, och felet blir högst 5 ms. Innehåll utanför textblocken har ingen plats i målformatet. SSA sparar hundradelar: 4126 ms skrivs som 0:00:04.13 och läses tillbaka som 4130 ms, medan 4124 ms blir 4120 ms. Varje tid kan alltså flyttas med högst 5 ms. Rapporten ovanför filrutan listar förlusterna innan du väljer en fil, och räknar dem per fil när filen är inläst.

En fil eller en hel säsong: kön bearbetar filerna i tur och ordning, du kan avbryta mitt i och resultaten laddas ner tillsammans som en ZIP. Hela konverteringen sker i webbläsaren – filen lämnar aldrig datorn.

Exempel

En typisk TTML-fil konverterad till SSA

Indata

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

[Script Info]
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
Dialogue: 0,0:00:01.00,0:00:03.50,Default,,0,0,0,,Hello {\i1}there{\i0}.
Dialogue: 0,0:00:03.50,0:00:06.00,Default,,0,0,0,,How are you?\NFine, thanks.

Förlorat i utdatafilen: tidsprecisionen och formatdata. Jämför de två sidorna rad för rad.

Samma konvertering på en stökig fil

Indata

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

[Script Info]
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
Dialogue: 0,0:00:01.50,0:00:03.50,Default,,0,0,0,,Loaded from an offset and a duration.
Dialogue: 0,0:00:04.00,0:00:06.50,Default,,0,0,0,,A coarser clock spelling.
Dialogue: 0,0:00:07.00,0:00:08.48,Default,,0,0,0,,Frames, at 25fps.
Dialogue: 0,0:00:09.00,0:00:11.00,Default,,0,0,0,,{\c&H000000FF&}Half-open{\c} and Tom &amp; Jerry.

Så här ser skadade filer ut i verkligheten – blandade radbrytningar, lösa blanksteg och tomma fält. Jämför med det prydliga exemplet ovan för att se vad tolken förlåter.

Vanliga frågor

Hur skiljer sig tidskoderna i TTML och SSA?

TTML skriver tiden i begin- och end-attribut som 00:00:04.126, med millisekunder. SSA skriver en tidpunkt som 0:00:04.13, alltså i hundradels sekunder. SSA räknar i hundradels sekunder, alltså grövre än TTML; varje tid avrundas till närmaste 10 ms, och felet blir högst 5 ms.

Vad förloras när en TTML-fil blir SSA?

När TTML blir SSA går tidsprecisionen och formatdata förlorade. Målformatets klocka är grövre: varje tid avrundas till närmaste 10 ms, och felet blir högst 5 ms. Innehåll utanför textblocken har ingen plats i målformatet. Texten, ordningen och tiderna följer med, men avrundade.

Klarar SSA av formatering och placering som TTML har?

TTML har en <styling>-tabell med namngivna stilar och en <layout>-tabell med regioner i <head>. TTML placerar text via regioner som definieras i <head>. TTML sparar när ett textblock börjar och slutar, inte när en stavelse markeras. SSA har en stiltabell i [V4 Styles] med typsnitt, storlek, färger, kontur och marginaler, plus överstyrningskoder per textblock. SSA placerar text med \pos och \an, och behåller \an-parametern i textblockets extrafält. SSA sparar karaoketider per stavelse med \k-koder.

Vad händer med radbrytningar och antalet textblock när TTML konverteras till SSA?

TTML till SSA: Ett TTML-textblock är ett <p>-element med begin och end inuti ett XML-dokument. Ett TTML-textblock behåller hårda radbrytningar (<br/>). Ett SSA-textblock behåller hårda radbrytningar (\N och \n).

Laddas min TTML-fil upp när jag konverterar den till SSA?

Nej. Både inläsningen av TTML-filen och skrivningen av SSA-filen sker i webbläsaren; ingen del av texten, tiderna eller taggarna skickas i en förfrågan. Du kan lägga in en hel säsong, avbryta mitt i och ladda ner resultaten som en ZIP.

Relaterade verktyg