Konvertera JSON till SMI
Eller klistra in undertexttext
Vad den här konverteringen ändrar
2 saker tappas eller kräver ett beslut
- Formatering
all formatering utom fet och kursiv (färg, kontur, skugga, marginaler)
- Karaoke
karaoketider (markering per stavelse)
Den här listan kommer från kapacitetsmatrisen för de här två formaten, inte från den specifika fil du laddade. En viss fil kan förlora mer om den använder funktioner som formatet tillåter men matrisen inte modellerar.
Den här sidan konverterar en JSON-fil till SMI. JSON skriver tiden som ett heltal millisekunder, till exempel "start": 4126. SAMI anger starttiden som ett millisekundstal i attributet, till exempel <SYNC Start=4126>. Ett JSON-textblock är ett objekt med start, end och text, samlade i en cues-lista. Ett SMI-textblock är en <SYNC Start=…>-rad följd av en <P>-rad; nästa <SYNC> tar över skärmen. Båda räknar i millisekunder, så ingen tid avrundas i konverteringen.
Det som inte följer med: formateringen och karaoken. Färg, kontur, skugga och marginaler försvinner; fet och kursiv kan följa med. Karaoketiderna, som styr markeringen per stavelse, försvinner. Rapporten ovanför filrutan listar förlusterna innan du väljer en fil, och räknar dem per fil när filen är inläst.
En fil eller en hel säsong: kön bearbetar filerna i tur och ordning, du kan avbryta mitt i och resultaten laddas ner tillsammans som en ZIP. Hela konverteringen sker i webbläsaren – filen lämnar aldrig datorn.
Exempel
En typisk JSON-fil konverterad till SMI
Indata
{
"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"
}
]
}
Resultat
<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>
Förlorat i utdatafilen: formateringen och karaoken. Jämför de två sidorna rad för rad.
Samma konvertering på en stökig fil
Indata
[
{ "start": 0, "end": 1000, "lines": ["First."] },
{ "start": 1000, "end": 2000, "text": "Second." },
"not an object",
{ "start": 2000, "end": 3000, "lines": ["Third."], "class": "top" }
]
Resultat
<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>
Så här ser skadade filer ut i verkligheten – blandade radbrytningar, lösa blanksteg och tomma fält. Jämför med det prydliga exemplet ovan för att se vad tolken förlåter.
Vanliga frågor
Hur skiljer sig tidskoderna i JSON och SMI?
JSON skriver tiden som ett heltal millisekunder, till exempel "start": 4126. SAMI anger starttiden som ett millisekundstal i attributet, till exempel <SYNC Start=4126>. Båda räknar i millisekunder, så ingen tid avrundas i konverteringen.
Vad förloras när en JSON-fil blir SMI?
När JSON blir SMI går formateringen och karaoken förlorade. Färg, kontur, skugga och marginaler försvinner; fet och kursiv kan följa med. Karaoketiderna, som styr markeringen per stavelse, försvinner. Texten, ordningen och tiderna följer med.
Klarar SMI av formatering och placering som JSON har?
JSON bevarar hela modellen: stilar, placering, karaoke och strukturerade taggar. JSON sparar positionen som x, y och en justering. JSON sparar karaoketider som strukturerade taggar. SMI har en <STYLE>-del med CSS och <font>-taggar i texten; teckenstorlek, kontur och marginaler deklareras inte per textblock. SMI kan placera text via CSS-klasser och attribut på <P>-raderna. SMI har ingen karaoke.
Vad händer med radbrytningar och antalet textblock när JSON konverteras till SMI?
JSON till SMI: Ett JSON-textblock är ett objekt med start, end och text, samlade i en cues-lista. JSON behåller hårda radbrytningar som en lista av rader. Ett SMI-textblock behåller hårda radbrytningar (<br>).
Laddas min JSON-fil upp när jag konverterar den till SMI?
Nej. Både inläsningen av JSON-filen och skrivningen av SMI-filen sker i webbläsaren; ingen del av texten, tiderna eller taggarna skickas i en förfrågan. Du kan lägga in en hel säsong, avbryta mitt i och ladda ner resultaten som en ZIP.