Siirry pääsisältöön
SubtitleMatrix

Muunna JSON muotoon SSA

Tai liitä tekstityksen teksti

Mitä tämä muunnos muuttaa

1 asia pudotetaan tai vaatii päätöksen

  • Tarkkuus

    ajoituksen tarkkuus — tuotoksen kello on karkeampi, joten jokainen aikaleima pyöristetään lähimpään 10 ms:ään

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.

Kun JSON muunnetaan SSA:ksi, jokainen JSON-tiedoston alaotsikko kirjoitetaan uudelleen muotoon, jossa yksi alaotsikko on yksi Dialogue-rivi, jossa on alku- ja loppuaika, tyyliviittaus ja teksti. Aikakoodi vaihtaa muotoa: JSON kirjoittaa sen muodossa {"start": 1000, "end": 3500}, SSA puolestaan muodossa 0:00:01.00. Sanoja ei muuteta, vaan JSON-tiedoston teksti siirretään SSA:hen sellaisenaan.

Kun JSON muunnetaan SSA:ksi, menetettävää on aikojen tarkkuus. Kun JSON muunnetaan SSA:ksi, jokainen aikaleima pyöristetään lähimpään 10 ms:iin. Raportti näkyy JSON → SSA -ruudun yläpuolella ennen muunnosta, ja jokainen kohta lasketaan tiedostokohtaisesti.

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

Esimerkit

Tyypillinen JSON-tiedosto muunnettuna SSA:ksi

Syöte

{
  "version": 1,
  "title": "Fixture: typical",
  "fps": 25,
  "styles": {
    "Default": {
      "name": "Default",
      "fontFamily": "Arial",
      "fontSize": 20,
      "primaryColor": "#FFFFFF",
      "bold": false,
      "italic": false
    }
  },
  "generator": "subtitlematrix fixtures",
  "cues": [
    {
      "id": "1",
      "start": 0,
      "end": 2000,
      "lines": [
        "Hello world.",
        "Second line."
      ],
      "style": "Default",
      "position": {
        "x": 100,
        "y": 200,
        "align": "center"
      }
    },
    {
      "id": "2",
      "start": 2500,
      "end": 4000,
      "lines": [
        "Plain line.",
        {
          "text": "Styled line.",
          "tags": [
            {
              "kind": "italic",
              "start": 0,
              "end": 6
            }
          ]
        }
      ]
    },
    {
      "id": "3",
      "start": 4500,
      "end": 6000,
      "lines": [
        "Roger: I am here."
      ],
      "speaker": "Roger"
    }
  ]
}

Tuotos

[Script Info]
Title: Fixture: typical
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,,,,0,0,,,,,,,,,

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:02.00,Default,,0,0,0,,{\pos(100,200)}Hello world.\NSecond line.
Dialogue: 0,0:00:02.50,0:00:04.00,Default,,0,0,0,,Plain line.\N{\i1}Styled{\i0} line.
Dialogue: 0,0:00:04.50,0:00:06.00,Default,,0,0,0,,Roger: I am here.

Tulosteessa JSONista SSA:hen menetetään aikojen tarkkuus; vertaa kahta puolta rivi riviltä ja katso, mikä säilyi.

Sama JSON → SSA -muunnos rikkinäisellä lähdetiedostolla

Syöte

[
    { "start": 0, "end": 1000, "lines": ["First."] },
    { "start": 1000, "end": 2000, "text": "Second." },
    "not an object",
    { "start": 2000, "end": 3000, "lines": ["Third."], "class": "top" }
]

Tuotos

[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:00.00,0:00:01.00,Default,,0,0,0,,First.
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,Second.
Dialogue: 0,0:00:02.00,0:00:03.00,Default,,0,0,0,,Third.

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

Usein kysytyt kysymykset

Miten JSON ja SSA kirjoittavat aikakoodin?

JSON kirjoittaa ajan muodossa {"start": 1000, "end": 3500}: kokonaislukuina millisekunteina. SSA käyttää muotoa 0:00:01.00, eli tunnit, minuutit, sekunnit ja sadasosat. Koska SSA tuntee ajan vain 10 millisekunnin tarkkuudella, jokainen aikaleima pyöristetään lähimpään sadasosaan ja voi siirtyä enintään 5 ms.

Mitä JSONista menetetään, kun siitä tehdään SSA?

Kun JSON muunnetaan SSA:ksi, menetettävää on aikojen tarkkuus. Kun JSON muunnetaan SSA:ksi, jokainen aikaleima pyöristetään lähimpään 10 ms:iin. Alaotsikoiden teksti ja keskinäinen järjestys säilyvät.

Miten rivinsisäiset tagit käyttäytyvät, kun JSON muunnetaan SSA:ksi?

JSON merkitsee rivinsisäisen muotoilun muodossa merkkirajoina tallennetut tagit, ja SSA kirjoittaa sen muodossa \i1, \b1 ja \c&H…&.

Miten JSON-tiedoston moniriviset alaotsikot käyttäytyvät SSA:ssa?

Monirivisen alaotsikon rivit erotetaan JSONissa lines-taulukon erillisinä alkioina, ja SSA merkitsee ne \N-merkinnällä.

Millaisen tyylitaulun SSA saa, kun lähde on JSON?

SSA kirjoittaa [V4 Styles] -tyylitaulun ja Dialogue-rivit Marked-kenttineen. JSON-tiedostosta muunnettaessa syntyy oletustyyli Default, ja SSA merkitsee rivinvaihdon \N-koodilla.

Voiko SSA-tiedoston muuntaa takaisin JSONiksi?

Kyllä, mutta paluusuunnassa menetettävää on: alaotsikoiden ulkopuolinen sisältö. Kun SSA muunnetaan JSONiksi, kohteen ulkopuolelle jäävät [Script Info] -osio, [V4 Styles] -tyylitaulu sekä [Fonts]- ja [Graphics]-osiot ja Comment:-rivit. Edestakainen matka JSONista SSA:hen ja takaisin ei palauta sitä, mitä ensimmäinen muunnos pudotti.

Lähetetäänkö JSON-tiedostoni palvelimelle, kun teen SSA-muunnosta?

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

Aiheeseen liittyvät työkalut