Muunna SMI muotoon JSON
Tai liitä tekstityksen teksti
Mitä tämä muunnos muuttaa
1 asia pudotetaan tai vaatii päätöksen
- 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.
Kun SMI muunnetaan JSONiksi, jokainen SMI-tiedoston alaotsikko kirjoitetaan uudelleen muotoon, jossa yksi alaotsikko on cues-taulukon alkio, jossa on start-, end- ja lines-kentät. Aikakoodi vaihtaa muotoa: SMI kirjoittaa sen muodossa <SYNC Start=1000>, JSON puolestaan muodossa {"start": 1000, "end": 3500}. Sanoja ei muuteta, vaan SMI-tiedoston teksti siirretään JSONiin sellaisenaan.
Tässä suunnassa SMI-tiedostosta putoaa alaotsikoiden ulkopuolinen sisältö, kun se muunnetaan JSONiksi. Kun SMI muunnetaan JSONiksi, kohteen ulkopuolelle jäävät <HEAD>- ja <STYLE>-lohkot sekä <P Class> -määritteet. Luettelo on näkyvissä ennen kuin valitset SMI-tiedoston, ja se tarkentuu JSON-muunnoksen lukemisen jälkeen.
Yksi tiedosto tai sata: SMI-jono käsittelee ne peräkkäin, keskeytät milloin tahansa ja lataat kaikki JSON-tulokset kerralla. JSON-tiedostot syntyvät selaimessa eikä SMI-tiedoston sisältö poistu koneeltasi.
Esimerkit
Tyypillinen SMI-tiedosto muunnettuna JSONiksi
Syöte
<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial; }
.ENCC { Name: English; lang: en-US; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P Class=ENCC>Hello there.
<SYNC Start=3000>
<P Class=ENCC>
<SYNC Start=3500>
<P Class=ENCC>How are you?<br>Fine, thanks.
<SYNC Start=6000>
<P Class=ENCC>
</BODY>
</SAMI>
Tuotos
{
"version": 1,
"cues": [
{
"start": 1000,
"end": 3000,
"lines": [
"Hello there."
]
},
{
"start": 3500,
"end": 6000,
"lines": [
"How are you?",
"Fine, thanks."
]
}
]
}
Tulosteessa SMI:stä JSONiin menetetään muotokohtainen sisältö; vertaa kahta puolta rivi riviltä ja katso, mikä säilyi.
Hankala SMI-tiedosto ja JSON-muunnos
Syöte
<SAMI>
<HEAD>
<TITLE>Episode 1</TITLE>
<STYLE TYPE="text/css">
<!--
.ENCC { Name: English; }
-->
</STYLE>
</HEAD>
<BODY>
<sync start="00:00:02,500">
<P Class=ENCC>Line one<br>Line two
<sync start=9000>
<P Class=ENCC>Tom & Jerry
<SYNC Start=12000>
<P Class=ENCC>
</BODY>
</SAMI>
Tuotos
{
"version": 1,
"cues": [
{
"start": 2500,
"end": 9000,
"lines": [
"Line one",
"Line two"
]
},
{
"start": 9000,
"end": 12000,
"lines": [
"Tom & Jerry"
]
}
]
}
SMI- ja JSON-tiedostot ovat usein sekaisin: ylimääräisiä rivejä, tyhjiä kenttiä ja aikoja, joita ei voi lukea. SMI-jäsennin ei kaadu vaan korjaa minkä voi ja kertoo loput raportissa, jonka JSON saa mukanaan.
Usein kysytyt kysymykset
Miten aika siirtyy SMI:stä JSONiin?
SMI kirjoittaa ajan muodossa <SYNC Start=1000>: millisekunteina SYNC-merkinnän Start-arvossa. 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. SAMI:ssa loppuaika luetaan aina seuraavasta SYNC-lohkosta, joten se on tiedostossa epäsuora.
Mitä SMI:stä menetetään, kun siitä tehdään JSON?
Kun SMI muunnetaan JSONiksi, menetettävää on alaotsikoiden ulkopuolinen sisältö. Kun SMI muunnetaan JSONiksi, kohteen ulkopuolelle jäävät <HEAD>- ja <STYLE>-lohkot sekä <P Class> -määritteet. Alaotsikoiden teksti ja keskinäinen järjestys säilyvät.
Entä lihavointi, kursivointi ja väri – säilyvätkö ne SMI:stä JSONiin?
SMI merkitsee rivinsisäisen muotoilun muodossa <i>, <b>, <font color> ja <br>, ja JSON kirjoittaa sen muodossa merkkirajoina tallennetut tagit.
Pysyvätkö SMI-tiedoston rivit erillään JSONissa?
Monirivisen alaotsikon rivit erotetaan SMI:ssä <br>-merkinnällä, ja JSON merkitsee ne lines-taulukon erillisinä alkioina. JSON:ssa rivit ovat lines-taulukon alkioita, joten rakenne säilyy täsmälleen.
Mitä SMI:n STYLE-lohkolle ja luokkamääritteille tapahtuu JSONissa?
SMI:n eli SAMI:n HEAD-osiossa on STYLE-lohko ja jokaisella tekstikappaleella voi olla P Class -määrite. JSON ei tallenna niitä, joten ne jäävät pois, mutta alaotsikoiden teksti ja ajoitus säilyvät.
Voiko JSON-tiedoston muuntaa takaisin SMI:ksi?
Kyllä, mutta paluusuunnassa menetettävää on: väri, ääriviiva, varjo ja marginaalit ja karaoken ajoitus. Kun JSON muunnetaan SMI:ksi, väri, ääriviiva, varjo ja marginaalit jäävät pois, mutta lihavointi ja kursivointi säilyvät. Edestakainen matka SMI:stä JSONiin ja takaisin ei palauta sitä, mitä ensimmäinen muunnos pudotti.
Toimiiko SMI → JSON -eräajo, kun tiedostoja on sata?
Kyllä. Jono käsittelee SMI-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.