Siirry pääsisältöön
SubtitleMatrix

Muunna ASS muotoon TTML

MuunnoksetAdvanced SubStation Alpha (ASS)
Tai liitä tekstityksen teksti

Mitä tämä muunnos muuttaa

2 asiaa pudotetaan tai vaativat päätöksen

  • Karaoke

    karaokeajoitus (tavukohtainen korostus)

  • Muotokohtainen sisältö

    sisältö, jonka lähdemuoto pitää alaotsikoidensa ulkopuolella (ei-alaotsikkolohkot, otsikkoteksti, alaotsikkokohtaiset asetukset, kommentoidut tapahtumat) — kohdemuodossa ei ole sille paikkaa

Tämä luettelo tulee näiden kahden muodon kyvykkyysmatriisista, ei lataamastasi tiedostosta. Tietty tiedosto voi menettää enemmän, jos se käyttää ominaisuuksia, jotka muoto sallii mutta matriisi ei mallinna.

Sivulla ASS muuttuu TTML:ksi. Kun ASS muunnetaan TTML:ksi, lähtöformaatti tallentaa yhden alaotsikon muotoon yksi Dialogue-rivi, jossa on alku- ja loppuaika, tyyliviittaus ja teksti, ja aika kirjoitetaan muodossa 0:00:01.00. Kohdeformaatti TTML tallentaa saman asian muotoon p-elementti, jonka begin- ja end-määritteet kantavat ajan, ja aika kirjoitetaan muodossa begin="00:00:01.000" end="00:00:03.500", kun lähde on ASS. Molemmilla puolilla ovat samat sanat, mutta ASS ja TTML merkitsevät ne eri tavalla.

Tässä suunnassa ASS-tiedostosta putoaa karaoken ajoitus ja alaotsikoiden ulkopuolinen sisältö, kun se muunnetaan TTML:ksi. Kun ASS muunnetaan TTML:ksi, tavukohtainen korostus ei siirry, koska TTML ei tunne karaokea. Luettelo on näkyvissä ennen kuin valitset ASS-tiedoston, ja se tarkentuu TTML-muunnoksen lukemisen jälkeen.

Yksi tiedosto tai sata: ASS-jono käsittelee ne peräkkäin, keskeytät milloin tahansa ja lataat kaikki TTML-tulokset kerralla. TTML-tiedostot syntyvät selaimessa eikä ASS-tiedoston sisältö poistu koneeltasi.

Esimerkit

Tyypillinen ASS-tiedosto muunnettuna TTML:ksi

Syöte

[Script Info]
Title: Example
ScriptType: v4.00+
WrapStyle: 0

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
Style: Title,Arial,36,&H0000FFFF,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: 0,0:00:05.00,0:00:08.50,Default,,0,0,0,,{\i1}Italic{\i0} and {\b1}bold{\b0} text.
Dialogue: 0,0:00:09.00,0:00:12.00,Title,,0,0,0,,{\pos(320,240)}Positioned
Dialogue: 0,0:00:13.00,0:00:16.00,Default,,0,0,0,,{\k50}ka{\k30}ra{\k20}o{\k10}ke
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Line one\NLine two
Dialogue: 1,0:00:21.00,0:00:24.00,Default,,0,0,0,,{\an7}Top left

Tuotos

<?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.500"><span tts:fontStyle="italic">Italic</span> and <span tts:fontWeight="bold">bold</span> text.</p>
<p begin="00:00:09.000" end="00:00:12.000">Positioned</p>
<p begin="00:00:13.000" end="00:00:16.000">karaoke</p>
<p begin="00:00:17.000" end="00:00:20.000">Line one<br/>Line two</p>
<p begin="00:00:21.000" end="00:00:24.000">Top left</p>  </body>
</tt>

Tästä ASS → TTML -tulosteesta puuttuvat karaoke ja muotokohtainen sisältö. Kaikki muu vastaa rivi riviltä.

Hankala ASS-tiedosto ja TTML-muunnos

Syöte

[Script Info]
; 一份真实的脏文件:BOM + CRLF + 认不出的覆写码 + Comment + 坏时间码
Title: Dirty sample
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Fonts]
fontname: Arial
!!!!!!!!!!!!!!!!!!!!!!!!!!!!

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: 0,0:00:00.00,0:00:01.00,Default,,0,0,0,,这是一条注释,不该变成字幕
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello, world
Dialogue: 0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\fad(300,300)}Unmodelled override
Dialogue: 0,0:00:09.00,0:00:12.00,Default,,0,0,0,,{\an7\pos(320,240)}Both, wrong order
Dialogue: 0,0:00:13.00,0:00:16.5,Default,,0,0,0,,One decimal centisecond
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Soft\nbreak
Dialogue: 0,0:00:xx.00,0:00:24.00,Default,,0,0,0,,Broken timecode

Tuotos

<?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, world</p>
<p begin="00:00:05.000" end="00:00:08.000">{\fad(300,300)}Unmodelled override</p>
<p begin="00:00:09.000" end="00:00:12.000">Both, wrong order</p>
<p begin="00:00:13.000" end="00:00:16.500">One decimal centisecond</p>
<p begin="00:00:17.000" end="00:00:20.000">Soft<br/>break</p>  </body>
</tt>

Näin rikkinäinen ASS-tiedosto saapuu TTML-muunnokseen: BOM-merkintä, Windows-rivinvaihdot ja lukukelvottomat aikakoodit eivät kaada jäsennintä. Vertaa sitä yllä olevaan siistiin esimerkkiin ja katso, mitä TTML saa mukaansa.

Usein kysytyt kysymykset

Mitä aikaleimoille tapahtuu, kun ASS muunnetaan TTML:ksi?

ASS kirjoittaa ajan muodossa 0:00:01.00: tunnit, minuutit, sekunnit ja sadasosat. TTML käyttää muotoa begin="00:00:01.000" end="00:00:03.500", eli XML-määritteinä millisekunnin tarkkuudella. Lähde on karkeampi: ASS tallentaa sadasosat, ja ne kirjoitetaan TTML-muodossa millisekunteina sellaisenaan, joten tarkkuus ei heikkene.

Mitä kaikkea ASS-tiedostosta jää pois TTML:ssä?

Kun ASS muunnetaan TTML:ksi, menetettävää on karaoken ajoitus ja alaotsikoiden ulkopuolinen sisältö. Kun ASS muunnetaan TTML:ksi, kohteen ulkopuolelle jäävät [Script Info] -osio, [V4+ Styles] -tyylitaulu sekä [Fonts]- ja [Graphics]-osiot ja Comment:-rivit. Kun ASS muunnetaan TTML:ksi, tavukohtainen korostus ei siirry, koska TTML ei tunne karaokea. Alaotsikoiden teksti ja keskinäinen järjestys säilyvät.

Miten rivinsisäiset tagit käyttäytyvät, kun ASS muunnetaan TTML:ksi?

ASS merkitsee rivinsisäisen muotoilun muodossa \i1, \b1, \c&H…& ja \anN, ja TTML kirjoittaa sen muodossa <span>-elementit ja <br/>.

Mitä rivinvaihdoille tapahtuu, kun ASS muunnetaan TTML:ksi?

Monirivisen alaotsikon rivit erotetaan ASS:ssa \N-merkinnällä, ja TTML merkitsee ne <br/>-elementillä.

Mitä ASS-tiedoston karaoken ajoitukselle tapahtuu TTML:ssä?

ASS merkitsee tavut \k-koodeilla, jotka kertovat jokaisen tavun keston. TTML ei tunne karaokea, joten tavut säilyvät tekstinä ja ne merkitään <c>-tageilla, mutta niiden kestot katoavat ja koko alaotsikko näytetään kerralla.

Voiko TTML-tiedoston muuntaa takaisin ASS:ksi?

Kyllä, mutta paluusuunnassa menetettävää on: aikojen tarkkuus ja alaotsikoiden ulkopuolinen sisältö. Kun TTML muunnetaan ASS:ksi, jokainen aikaleima pyöristetään lähimpään 10 ms:iin. Edestakainen matka ASS:sta TTML:hen ja takaisin ei palauta sitä, mitä ensimmäinen muunnos pudotti.

Lähetetäänkö ASS-tiedostoni palvelimelle, kun teen TTML-muunnosta?

Ei. Jono käsittelee ASS-tiedostot yksi kerrallaan, ajon voi keskeyttää milloin tahansa ja tulokset tulevat yhtenä ZIP-tiedostona. Jokainen TTML-tiedosto kirjoitetaan selaimessa, joten mitään ei lähetetä palvelimelle; yksittäinen tekstitystiedosto saa olla enintään 64 Mt.

Aiheeseen liittyvät työkalut