Siirry pääsisältöön
SubtitleMatrix

Muunna JSON muotoon SRT

Tai liitä tekstityksen teksti

Mitä tämä muunnos muuttaa

3 asiaa pudotetaan tai vaativat päätöksen

  • Tyyli

    kaikki tyylit (lihavointi, kursiivi, väri, ääriviiva, varjo)

  • Sijoittelu

    sijoittelu ruudulla (jokainen alaotsikko palaa oletussijaintiin)

  • Karaoke

    karaokeajoitus (tavukohtainen korostus)

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 JSON muuttuu SRT:ksi. Kun JSON muunnetaan SRT:ksi, lähtöformaatti tallentaa yhden alaotsikon muotoon cues-taulukon alkio, jossa on start-, end- ja lines-kentät, ja aika kirjoitetaan muodossa {"start": 1000, "end": 3500}. Kohdeformaatti SRT tallentaa saman asian muotoon numeroitu lohko, jonka aikakoodirivi erottaa alku- ja loppuajan ja jonka perässä on teksti, ja aika kirjoitetaan muodossa 00:00:01,000, kun lähde on JSON. Molemmilla puolilla ovat samat sanat, mutta JSON ja SRT merkitsevät ne eri tavalla.

Tässä suunnassa JSON-tiedostosta putoaa dokumenttitason tyylit: fontit, koot, värit, ääriviivat ja varjot, sijoittelu ruudulla ja karaoken ajoitus, kun se muunnetaan SRT:ksi. Kun JSON muunnetaan SRT:ksi, dokumenttitason tyylit – fontit, koot, värit, ääriviivat, varjot ja marginaalit – eivät mahdu SRT:hen. Luettelo on näkyvissä ennen kuin valitset JSON-tiedoston, ja se tarkentuu SRT-muunnoksen lukemisen jälkeen. Rivinsisäiset tagit säilyvät: JSON tallentaa ne muodossa merkkirajoina tallennetut tagit, ja SRT kirjoittaa ne muodossa <i>, <b> ja <font color>.

Koko JSON-kausi mahtuu samaan ajoon: tiedostot käsitellään yksi kerrallaan, ajon voi keskeyttää keskeltä ja kaikki SRT-tulokset tulevat yhtenä ZIP-tiedostona. Muunnos tapahtuu selaimessa, joten JSON-tiedostosi eivät käy palvelimella ennen SRT-versiota.

Esimerkit

Tyypillinen JSON-tiedosto muunnettuna SRT: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

1
00:00:00,000 --> 00:00:02,000
Hello world.
Second line.

2
00:00:02,500 --> 00:00:04,000
Plain line.
<i>Styled</i> line.

3
00:00:04,500 --> 00:00:06,000
Roger: I am here.

Tästä JSON → SRT -tulosteesta puuttuvat dokumenttitason tyylit, sijoittelu ja karaoke. Kaikki muu vastaa rivi riviltä.

Sama JSON → SRT -muunnos hankalalla aineistolla

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

1
00:00:00,000 --> 00:00:01,000
First.

2
00:00:01,000 --> 00:00:02,000
Second.

3
00:00:02,000 --> 00:00:03,000
Third.

JSON- ja SRT-tiedostot ovat usein sekaisin: ylimääräisiä rivejä, tyhjiä kenttiä ja aikoja, joita ei voi lukea. JSON-jäsennin ei kaadu vaan korjaa minkä voi ja kertoo loput raportissa, jonka SRT saa mukanaan.

Usein kysytyt kysymykset

Miten JSON ja SRT kirjoittavat aikakoodin?

JSON kirjoittaa ajan muodossa {"start": 1000, "end": 3500}: kokonaislukuina millisekunteina. SRT käyttää muotoa 00:00:01,000, eli tunnit, minuutit, sekunnit ja millisekunnit pilkulla erotettuina. Tarkkuus on molemmilla puolilla sama, joten aika itse ei muutu – vain sen kirjoitusasu vaihtuu.

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

Kun JSON muunnetaan SRT:ksi, menetettävää on dokumenttitason tyylit: fontit, koot, värit, ääriviivat ja varjot, sijoittelu ruudulla ja karaoken ajoitus. Kun JSON muunnetaan SRT:ksi, dokumenttitason tyylit – fontit, koot, värit, ääriviivat, varjot ja marginaalit – eivät mahdu SRT:hen. Kun JSON muunnetaan SRT:ksi, jokainen alaotsikko palaa SRT:ssä oletussijaintiin ruudulla. Alaotsikoiden teksti ja keskinäinen järjestys säilyvät.

Entä lihavointi, kursivointi ja väri – säilyvätkö ne JSONista SRT:hen?

JSON merkitsee rivinsisäisen muotoilun muodossa merkkirajoina tallennetut tagit, ja SRT kirjoittaa sen muodossa <i>, <b> ja <font color>. JSON-tiedoston dokumenttitason tyylit – fontit, värit ja ääriviivat – eivät kuitenkaan siirry, koska SRT ei tunne tyylitauluja. SRT ei tallenna tyylitauluja lainkaan, joten vain tekstin sisäiset tagit kulkevat mukana.

Miten JSON-tiedoston moniriviset alaotsikot käyttäytyvät SRT:ssä?

Monirivisen alaotsikon rivit erotetaan JSONissa lines-taulukon erillisinä alkioina, ja SRT merkitsee ne tavallisella rivinvaihdolla.

Mitä JSON-tiedoston karaoken ajoitukselle tapahtuu SRT:ssä?

JSON tallentaa karaoken tagirakenteeseen: jokainen tavu on oma merkkiraja, jolla on kind: karaoke ja kestonsa. SRT 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 SRT-tiedoston muuntaa takaisin JSONiksi?

Kyllä. Paluusuunta on yhtä puhdas: jokainen SRT-tiedoston tallentama asia mahtuu JSONiin sellaisenaan. Edestakainen matka JSONista SRT:hen ja takaisin ei kuitenkaan palauta mitään, mitä ensimmäinen muunnos olisi jo pudottanut.

Voinko muuntaa koko kauden JSONista SRT:hen yhdellä ajolla?

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

Aiheeseen liittyvät työkalut