Siirry pääsisältöön
SubtitleMatrix

Muunna SBV muotoon JSON

MuunnoksetYouTube SBV
Tai liitä tekstityksen teksti

Mitä tämä muunnos muuttaa

Tässä suunnassa ei menetetä mitään — jokaisella lähdemuodon ominaisuudella on paikka kohdemuodossa.

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 SBV muuttuu JSONiksi. Kun SBV muunnetaan JSONiksi, lähtöformaatti tallentaa yhden alaotsikon muotoon lohko, jonka ensimmäisellä rivillä on alku- ja loppuaika, ja aika kirjoitetaan muodossa 0:00:01.000,0:00:03.500. Kohdeformaatti JSON tallentaa saman asian muotoon cues-taulukon alkio, jossa on start-, end- ja lines-kentät, ja aika kirjoitetaan muodossa {"start": 1000, "end": 3500}, kun lähde on SBV. Molemmilla puolilla ovat samat sanat, mutta SBV ja JSON merkitsevät ne eri tavalla.

Tässä suunnassa SBV ja JSON ovat menetyksettömiä: jokainen SBV-tiedoston tallentama asia mahtuu JSONiin sellaisenaan, eli teksti, alku- ja loppuaika ja rivinvaihdot. Raportti SBV → JSON -muunnoksen yläpuolella vahvistaa tämän jokaiselle tiedostolle erikseen.

Eräajossa SBV-tiedostot jonottuvat ja valmistuvat yksi kerrallaan; keskeytys toimii kesken JSON-muunnoksen ja tulokset pakataan yhdeksi ZIP-tiedostoksi. Mitään ei lähetetä palvelimelle: koko SBV-muunnos JSONiksi tapahtuu omalla koneellasi.

Esimerkit

SBV-tiedosto ja sen tulos JSONissa

Syöte

0:00:01.000,0:00:03.500
The quick brown fox.

0:00:04.000,0:00:06.250
Jumps over the lazy dog.

0:00:07.000,0:00:09.000
Two lines here.
And a second one.

Tuotos

{
  "version": 1,
  "cues": [
    {
      "start": 1000,
      "end": 3500,
      "lines": [
        "The quick brown fox."
      ]
    },
    {
      "start": 4000,
      "end": 6250,
      "lines": [
        "Jumps over the lazy dog."
      ]
    },
    {
      "start": 7000,
      "end": 9000,
      "lines": [
        "Two lines here.",
        "And a second one."
      ]
    }
  ]
}

Tässä SBV → JSON -muunnoksessa ei menetetä mitään: vertaa kahta puolta rivi riviltä.

Hankala SBV-tiedosto ja JSON-muunnos

Syöte

0:00:02.000,0:00:04.000
Carriage-return line endings.

	0:00:06.000,0:00:08.000
Indented timecode, no final newline.

Tuotos

{
  "version": 1,
  "cues": [
    {
      "start": 2000,
      "end": 4000,
      "lines": [
        "Carriage-return line endings."
      ]
    },
    {
      "start": 6000,
      "end": 8000,
      "lines": [
        "Indented timecode, no final newline."
      ]
    }
  ]
}

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

Usein kysytyt kysymykset

Miten SBV ja JSON kirjoittavat aikakoodin?

SBV kirjoittaa ajan muodossa 0:00:01.000,0:00:03.500: alku- ja loppuaika peräkkäin pilkulla erotettuina, ilman nuolta. JSON käyttää muotoa {"start": 1000, "end": 3500}, eli kokonaislukuina millisekunteina. Tarkkuus on molemmilla puolilla sama, joten aika itse ei muutu – vain sen kirjoitusasu vaihtuu.

Miksi SBV ja JSON ovat tässä suunnassa menetyksettömiä?

Tässä suunnassa ei menetetä mitään: jokainen SBV-tiedoston tallentama asia mahtuu JSONiin sellaisenaan, eli teksti, alku- ja loppuaika ja rivinvaihdot. Myöskään JSON-tiedoston luku ei kadota mitään, ellet tuo rikkinäistä tiedostoa, jonka jäsennin joutuu korjaamaan.

Säilyykö SBV-tiedoston tekstin sisäinen muotoilu JSONissa?

SBV merkitsee rivinsisäisen muotoilun muodossa <i>, <b> ja <font color> -tagit, ja JSON kirjoittaa sen muodossa merkkirajoina tallennetut tagit.

Pysyvätkö SBV-tiedoston rivit erillään JSONissa?

Monirivisen alaotsikon rivit erotetaan SBV:ssä tavallisella rivinvaihdolla, ja JSON merkitsee ne lines-taulukon erillisinä alkioina. JSON:ssa rivit ovat lines-taulukon alkioita, joten rakenne säilyy täsmälleen.

Mitä kaikkea JSON tallentaa SBV:stä, mitä SBV itse ei kerro?

JSON:ssa on dokumenttitason kentät version, title, fps ja styles sekä jokaisella alaotsikolla start-, end- ja lines-kentät. SBV tallentaa vain osan tästä, joten JSON-tiedostoon voi ilmestyä tietoja, joita lähdetiedostossa ei ollut näkyvissä.

Toimiiko paluumuunnos JSONista SBV:hen samalla tavalla?

Kyllä, mutta paluusuunnassa menetettävää on: dokumenttitason tyylit: fontit, koot, värit, ääriviivat ja varjot, sijoittelu ruudulla ja karaoken ajoitus. Kun JSON muunnetaan SBV:ksi, dokumenttitason tyylit – fontit, koot, värit, ääriviivat, varjot ja marginaalit – eivät mahdu SBV:hen. Edestakainen matka SBV:stä JSONiin ja takaisin ei palauta sitä, mitä ensimmäinen muunnos pudotti.

Voinko muuntaa koko kauden SBV:stä JSONiin yhdellä ajolla?

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

Aiheeseen liittyvät työkalut