Muunna JSON muotoon ASS
Tai liitä tekstityksen teksti
Mitä tämä muunnos muuttaa
1 asia pudotetaan tai vaatii päätöksen
- Tarkkuus
ajoituksen tarkkuus — tuotoksen kello on karkeampi, joten jokainen aikaleima pyöristetään lähimpään 10 ms:ään
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 JSON muunnetaan ASS:ksi, jokainen JSON-tiedoston alaotsikko kirjoitetaan uudelleen muotoon, jossa yksi alaotsikko on yksi Dialogue-rivi, jossa on alku- ja loppuaika, tyyliviittaus ja teksti. Aikakoodi vaihtaa muotoa: JSON kirjoittaa sen muodossa {"start": 1000, "end": 3500}, ASS puolestaan muodossa 0:00:01.00. Sanoja ei muuteta, vaan JSON-tiedoston teksti siirretään ASS:hen sellaisenaan.
Kun JSON muunnetaan ASS:ksi, menetettävää on aikojen tarkkuus. Kun JSON muunnetaan ASS:ksi, jokainen aikaleima pyöristetään lähimpään 10 ms:iin. Raportti näkyy JSON → ASS -ruudun yläpuolella ennen muunnosta, ja jokainen kohta lasketaan tiedostokohtaisesti.
Koko JSON-kausi mahtuu samaan ajoon: tiedostot käsitellään yksi kerrallaan, ajon voi keskeyttää keskeltä ja kaikki ASS-tulokset tulevat yhtenä ZIP-tiedostona. Muunnos tapahtuu selaimessa, joten JSON-tiedostosi eivät käy palvelimella ennen ASS-versiota.
Esimerkit
Tyypillinen JSON-tiedosto muunnettuna ASS: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
[Script Info]
Title: Fixture: typical
ScriptType: v4.00+
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,,,,0,0,,,,,,,,,,,,,,
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:02.00,Default,,0,0,0,,{\pos(100,200)}Hello world.\NSecond line.
Dialogue: 0,0:00:02.50,0:00:04.00,Default,,0,0,0,,Plain line.\N{\i1}Styled{\i0} line.
Dialogue: 0,0:00:04.50,0:00:06.00,Default,,0,0,0,,Roger: I am here.
Tulosteessa JSONista ASS:hen menetetään aikojen tarkkuus; vertaa kahta puolta rivi riviltä ja katso, mikä säilyi.
Sama JSON → ASS -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
[Script Info]
ScriptType: v4.00+
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:01.00,Default,,0,0,0,,First.
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,Second.
Dialogue: 0,0:00:02.00,0:00:03.00,Default,,0,0,0,,Third.
JSON- ja ASS-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 ASS saa mukanaan.
Usein kysytyt kysymykset
Mitä aikaleimoille tapahtuu, kun JSON muunnetaan ASS:ksi?
JSON kirjoittaa ajan muodossa {"start": 1000, "end": 3500}: kokonaislukuina millisekunteina. ASS käyttää muotoa 0:00:01.00, eli tunnit, minuutit, sekunnit ja sadasosat. Koska ASS tuntee ajan vain 10 millisekunnin tarkkuudella, jokainen aikaleima pyöristetään lähimpään sadasosaan ja voi siirtyä enintään 5 ms.
Mitä JSONista menetetään, kun siitä tehdään ASS?
Kun JSON muunnetaan ASS:ksi, menetettävää on aikojen tarkkuus. Kun JSON muunnetaan ASS:ksi, jokainen aikaleima pyöristetään lähimpään 10 ms:iin. Alaotsikoiden teksti ja keskinäinen järjestys säilyvät.
Miten rivinsisäiset tagit käyttäytyvät, kun JSON muunnetaan ASS:ksi?
JSON merkitsee rivinsisäisen muotoilun muodossa merkkirajoina tallennetut tagit, ja ASS kirjoittaa sen muodossa \i1, \b1, \c&H…& ja \anN.
Miten JSON-tiedoston moniriviset alaotsikot käyttäytyvät ASS:ssa?
Monirivisen alaotsikon rivit erotetaan JSONissa lines-taulukon erillisinä alkioina, ja ASS merkitsee ne \N-merkinnällä.
Millaisen tyylitaulun ASS saa, kun lähde on JSON?
ASS tarvitsee [V4+ Styles] -tyylitaulun ja Dialogue-rivit, joten JSON-tiedostosta muunnettaessa syntyy oletustyyli Default ja jokainen alaotsikko kirjoitetaan omaksi Dialogue-rivikseen. ASS käyttää rivinvaihtoon \N-merkintää ja rivinsisäiseen muotoiluun \i1- ja \b1-koodeja.
Voiko ASS-tiedoston muuntaa takaisin JSONiksi?
Kyllä, mutta paluusuunnassa menetettävää on: alaotsikoiden ulkopuolinen sisältö. Kun ASS muunnetaan JSONiksi, kohteen ulkopuolelle jäävät [Script Info] -osio, [V4+ Styles] -tyylitaulu sekä [Fonts]- ja [Graphics]-osiot ja Comment:-rivit. Edestakainen matka JSONista ASS:hen ja takaisin ei palauta sitä, mitä ensimmäinen muunnos pudotti.
Voinko muuntaa koko kauden JSONista ASS:hen yhdellä ajolla?
Kyllä. Jono käsittelee JSON-tiedostot yksi kerrallaan, ajon voi keskeyttää milloin tahansa ja tulokset tulevat yhtenä ZIP-tiedostona. Jokainen ASS-tiedosto kirjoitetaan selaimessa, joten mitään ei lähetetä palvelimelle; yksittäinen tekstitystiedosto saa olla enintään 64 Mt.