Muunna JSON muotoon SMI
Tai liitä tekstityksen teksti
Mitä tämä muunnos muuttaa
2 asiaa pudotetaan tai vaativat päätöksen
- Tyyli
kaikki tyylit paitsi lihavointi ja kursiivi (väri, ääriviiva, varjo, marginaalit)
- 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.
Tällä sivulla JSON muuttuu SMI:ksi: JSON merkitsee alaotsikon muotoon cues-taulukon alkio, jossa on start-, end- ja lines-kentät, ja SMI odottaa muotoa SYNC-lohko, joka vaihtaa ruudun sisällön. Aikakoodi vaihtaa muotoa: JSON kirjoittaa sen muodossa {"start": 1000, "end": 3500}, SMI puolestaan muodossa <SYNC Start=1000>. Alaotsikoiden teksti kulkee JSONista SMI:in sellaisenaan, koska muunnos ei koske sanoja.
Tässä suunnassa JSON-tiedostosta putoaa väri, ääriviiva, varjo ja marginaalit ja karaoken ajoitus, kun se muunnetaan SMI:ksi. Kun JSON muunnetaan SMI:ksi, väri, ääriviiva, varjo ja marginaalit jäävät pois, mutta lihavointi ja kursivointi säilyvät. Luettelo on näkyvissä ennen kuin valitset JSON-tiedoston, ja se tarkentuu SMI-muunnoksen lukemisen jälkeen. Rivinsisäiset tagit säilyvät: JSON tallentaa ne muodossa merkkirajoina tallennetut tagit, ja SMI kirjoittaa ne muodossa <i>, <b>, <font color> ja <br>.
Eräajossa JSON-tiedostot jonottuvat ja valmistuvat yksi kerrallaan; keskeytys toimii kesken SMI-muunnoksen ja tulokset pakataan yhdeksi ZIP-tiedostoksi. Mitään ei lähetetä palvelimelle: koko JSON-muunnos SMI:ksi tapahtuu omalla koneellasi.
Esimerkit
JSON-tiedosto ja sen tulos SMI:ssä
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
<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=0>
<P>Hello world.<br>Second line.
<SYNC Start=2000>
<P>
<SYNC Start=2500>
<P>Plain line.<br><i>Styled</i> line.
<SYNC Start=4000>
<P>
<SYNC Start=4500>
<P>Roger: I am here.
<SYNC Start=6000>
<P>
</BODY>
</SAMI>
Tästä JSON → SMI -tulosteesta puuttuvat väri ja marginaalit ja karaoke. Kaikki muu vastaa rivi riviltä.
Sama JSON → SMI -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
<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=0>
<P>First.
<SYNC Start=1000>
<P>
<SYNC Start=1000>
<P>Second.
<SYNC Start=2000>
<P>
<SYNC Start=2000>
<P>Third.
<SYNC Start=3000>
<P>
</BODY>
</SAMI>
Näin rikkinäinen JSON-tiedosto saapuu SMI-muunnokseen: BOM-merkintä, Windows-rivinvaihdot ja lukukelvottomat aikakoodit eivät kaada jäsennintä. Vertaa sitä yllä olevaan siistiin esimerkkiin ja katso, mitä SMI saa mukaansa.
Usein kysytyt kysymykset
Mitä aikaleimoille tapahtuu, kun JSON muunnetaan SMI:ksi?
JSON kirjoittaa ajan muodossa {"start": 1000, "end": 3500}: kokonaislukuina millisekunteina. SMI käyttää muotoa <SYNC Start=1000>, eli millisekunteina SYNC-merkinnän Start-arvossa. Tarkkuus on molemmilla puolilla sama, joten aika itse ei muutu – vain sen kirjoitusasu vaihtuu. SAMI merkitsee ajan SYNC Start -arvona ja päättää alaotsikon vasta seuraavassa SYNC-lohkossa.
Mitä JSONista menetetään, kun siitä tehdään SMI?
Kun JSON muunnetaan SMI:ksi, 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. Kun JSON muunnetaan SMI:ksi, tavukohtainen korostus ei siirry, koska SMI ei tunne karaokea. Alaotsikoiden teksti ja keskinäinen järjestys säilyvät.
Entä lihavointi, kursivointi ja väri – säilyvätkö ne JSONista SMI:in?
JSON merkitsee rivinsisäisen muotoilun muodossa merkkirajoina tallennetut tagit, ja SMI kirjoittaa sen muodossa <i>, <b>, <font color> ja <br>. JSON-tiedoston dokumenttitason tyylit – fontit, värit ja ääriviivat – eivät kuitenkaan siirry, koska SMI ei tunne tyylitauluja.
Pysyvätkö JSON-tiedoston rivit erillään SMI:ssä?
Monirivisen alaotsikon rivit erotetaan JSONissa lines-taulukon erillisinä alkioina, ja SMI merkitsee ne <br>-merkinnällä.
Mitä JSON-tiedoston karaoken ajoitukselle tapahtuu SMI:ssä?
JSON tallentaa karaoken tagirakenteeseen: jokainen tavu on oma merkkiraja, jolla on kind: karaoke ja kestonsa. SMI 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.
Toimiiko paluumuunnos SMI:stä JSONiin samalla tavalla?
Kyllä, mutta paluusuunnassa 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. Edestakainen matka JSONista SMI:in ja takaisin ei palauta sitä, mitä ensimmäinen muunnos pudotti.
Voinko muuntaa koko kauden JSONista SMI:in yhdellä ajolla?
Kyllä. Jono käsittelee JSON-tiedostot yksi kerrallaan, ajon voi keskeyttää milloin tahansa ja tulokset tulevat yhtenä ZIP-tiedostona. Jokainen SMI-tiedosto kirjoitetaan selaimessa, joten mitään ei lähetetä palvelimelle; yksittäinen tekstitystiedosto saa olla enintään 64 Mt.