Muunna SSA 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 SSA muunnetaan JSONiksi, jokainen SSA-tiedoston alaotsikko kirjoitetaan uudelleen muotoon, jossa yksi alaotsikko on cues-taulukon alkio, jossa on start-, end- ja lines-kentät. Aikakoodi vaihtaa muotoa: SSA kirjoittaa sen muodossa 0:00:01.00, JSON puolestaan muodossa {"start": 1000, "end": 3500}. Sanoja ei muuteta, vaan SSA-tiedoston teksti siirretään JSONiin sellaisenaan.
Tässä suunnassa SSA-tiedostosta putoaa alaotsikoiden ulkopuolinen sisältö, kun se muunnetaan JSONiksi. Kun SSA muunnetaan JSONiksi, kohteen ulkopuolelle jäävät [Script Info] -osio, [V4 Styles] -tyylitaulu sekä [Fonts]- ja [Graphics]-osiot ja Comment:-rivit. Luettelo on näkyvissä ennen kuin valitset SSA-tiedoston, ja se tarkentuu JSON-muunnoksen lukemisen jälkeen.
Yksi tiedosto tai sata: SSA-jono käsittelee ne peräkkäin, keskeytät milloin tahansa ja lataat kaikki JSON-tulokset kerralla. JSON-tiedostot syntyvät selaimessa eikä SSA-tiedoston sisältö poistu koneeltasi.
Esimerkit
SSA-tiedosto ja sen tulos JSONissa
Syöte
[Script Info]
Title: Example SSA
ScriptType: v4.00
Collisions: Normal
[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: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\i1}Italic{\i0} line.
Dialogue: Marked=0,0:00:09.00,0:00:12.00,Default,,0,0,0,,Two\Nlines
Tuotos
{
"version": 1,
"title": "Example SSA",
"styles": {
"Default": {
"name": "Default",
"Name": "Default",
"Fontname": "Arial",
"Fontsize": "20",
"PrimaryColour": "&H00FFFFFF",
"SecondaryColour": "&H000000FF",
"TertiaryColour": "&H00000000",
"BackColour": "&H00000000",
"Bold": "0",
"Italic": "0",
"BorderStyle": "1",
"Outline": "2",
"Shadow": "2",
"Alignment": "2",
"MarginL": "10",
"MarginR": "10",
"MarginV": "10",
"AlphaLevel": "0",
"Encoding": "1",
"fontFamily": "Arial",
"fontSize": 20,
"primaryColor": "#ffffff",
"bold": false,
"italic": false
}
},
"cues": [
{
"start": 1000,
"end": 4000,
"lines": [
"Hello there."
],
"style": "Default"
},
{
"start": 5000,
"end": 8000,
"lines": [
{
"text": "Italic line.",
"tags": [
{
"kind": "italic",
"start": 0,
"end": 6
}
]
}
],
"style": "Default"
},
{
"start": 9000,
"end": 12000,
"lines": [
"Two",
"lines"
],
"style": "Default"
}
]
}
Tulosteessa SSA:sta JSONiin menetetään muotokohtainen sisältö; vertaa kahta puolta rivi riviltä ja katso, mikä säilyi.
Sama SSA → JSON -muunnos hankalalla aineistolla
Syöte
[Script Info]
Title: Dirty SSA
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
Comment: Marked=0,0:00:00.00,0:00:01.00,Default,,0,0,0,,not a subtitle
Dialogue: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,{\b1}Bold{\b0} and {\u1}underlined{\u0}.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,A soft\nbreak and a {\p1}mystery{\p0} code.Tuotos
{
"version": 1,
"title": "Dirty SSA",
"styles": {
"Default": {
"name": "Default",
"Name": "Default",
"Fontname": "Arial",
"Fontsize": "20",
"PrimaryColour": "&H00FFFFFF",
"SecondaryColour": "&H000000FF",
"TertiaryColour": "&H00000000",
"BackColour": "&H00000000",
"Bold": "0",
"Italic": "0",
"BorderStyle": "1",
"Outline": "2",
"Shadow": "2",
"Alignment": "2",
"MarginL": "10",
"MarginR": "10",
"MarginV": "10",
"AlphaLevel": "0",
"Encoding": "1",
"fontFamily": "Arial",
"fontSize": 20,
"primaryColor": "#ffffff",
"bold": false,
"italic": false
}
},
"cues": [
{
"start": 1000,
"end": 4000,
"lines": [
{
"text": "Bold and underlined.",
"tags": [
{
"kind": "bold",
"start": 0,
"end": 4
},
{
"kind": "underline",
"start": 9,
"end": 19
}
]
}
],
"style": "Default"
},
{
"start": 5000,
"end": 8000,
"lines": [
"A soft",
"break and a {\\p1}mystery{\\p0} code."
],
"style": "Default"
}
]
}
SSA- ja JSON-tiedostot ovat usein sekaisin: ylimääräisiä rivejä, tyhjiä kenttiä ja aikoja, joita ei voi lukea. SSA-jäsennin ei kaadu vaan korjaa minkä voi ja kertoo loput raportissa, jonka JSON saa mukanaan.
Usein kysytyt kysymykset
Miten SSA ja JSON kirjoittavat aikakoodin?
SSA kirjoittaa ajan muodossa 0:00:01.00: tunnit, minuutit, sekunnit ja sadasosat. JSON käyttää muotoa {"start": 1000, "end": 3500}, eli kokonaislukuina millisekunteina. Lähde on karkeampi: SSA tallentaa sadasosat, ja ne kirjoitetaan JSON-muodossa millisekunteina sellaisenaan, joten tarkkuus ei heikkene.
Mitä SSA:sta menetetään, kun siitä tehdään JSON?
Kun SSA muunnetaan JSONiksi, 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. Alaotsikoiden teksti ja keskinäinen järjestys säilyvät.
Miten rivinsisäiset tagit käyttäytyvät, kun SSA muunnetaan JSONiksi?
SSA merkitsee rivinsisäisen muotoilun muodossa \i1, \b1 ja \c&H…&, ja JSON kirjoittaa sen muodossa merkkirajoina tallennetut tagit.
Miten SSA-tiedoston moniriviset alaotsikot käyttäytyvät JSONissa?
Monirivisen alaotsikon rivit erotetaan SSA:ssa \N-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ä SSA-tiedoston [Script Info]- ja [Fonts]-osioille tapahtuu JSONissa?
SSA pitää alaotsikoiden ulkopuolella [Script Info] -otsakkeen, [Fonts]- ja [Graphics]-osiot sekä Comment:-rivit. JSON ei tarjoa niille paikkaa, joten ne jäävät pois ja raportoidaan menetyksinä; itse Dialogue-rivien teksti säilyy.
Toimiiko paluumuunnos JSONista SSA:hen samalla tavalla?
Kyllä, mutta paluusuunnassa menetettävää on: aikojen tarkkuus. Kun JSON muunnetaan SSA:ksi, jokainen aikaleima pyöristetään lähimpään 10 ms:iin. Edestakainen matka SSA:sta JSONiin ja takaisin ei palauta sitä, mitä ensimmäinen muunnos pudotti.
Lähetetäänkö SSA-tiedostoni palvelimelle, kun teen JSON-muunnosta?
Ei. Jono käsittelee SSA-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.