SMI in JSON umwandeln
Oder Untertiteltext einfügen
Was diese Konvertierung ändert
1 Sache entfällt oder braucht eine Entscheidung
- Formatspezifischer Inhalt
Inhalt, den das Quellformat außerhalb seiner Blöcke führt (Nicht-Block-Abschnitte, Kopftext, Einstellungen pro Block, auskommentierte Ereignisse) — das Zielformat hat keinen Platz dafür
Diese Liste stammt aus der Fähigkeitsmatrix für diese beiden Formate, nicht aus der konkreten Datei, die Sie geladen haben. Eine bestimmte Datei kann mehr verlieren, wenn sie Merkmale nutzt, die das Format erlaubt, die Matrix aber nicht modelliert.
Diese Seite konvertiert SMI nach JSON. Datei hineinziehen oder Text einfügen — zurück kommt die JSON-Fassung. Die Konvertierung läuft vollständig im Browser, ohne Upload und ohne Konto.
Text, Zeiten und Positionierung kommen an, und Auszeichnungen innerhalb eines Blocks landen im `tags`-Array. Verloren gehen die SAMI-eigenen Konstruktionen — der `<STYLE>`-Block, der `<TITLE>` und die `Class=`-Verweise, für die es in JSON kein Gegenstück gibt. Das `styles`-Objekt der Ausgabe bleibt deshalb leer.
Eine Datei ist kein Problem, eine ganze Staffel auch nicht: Die Warteschlange arbeitet sie der Reihe nach ab, und die Ergebnisse kommen gemeinsam als eine ZIP-Datei.
Beispiele
Eine typische SMI-Datei, nach JSON konvertiert
Eingabe
<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>
Ausgabe
{
"version": 1,
"cues": [
{
"start": 1000,
"end": 3000,
"lines": [
"Hello there."
]
},
{
"start": 3500,
"end": 6000,
"lines": [
"How are you?",
"Fine, thanks."
]
}
]
}
Verloren in dieser Ausgabe: SAMI-eigene Konstruktionen. Text, Zeiten und Positionierung kommen an.
Dieselbe Konvertierung mit einer unordentlichen Eingabe
Eingabe
<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>
Ausgabe
{
"version": 1,
"cues": [
{
"start": 2500,
"end": 9000,
"lines": [
"Line one",
"Line two"
]
},
{
"start": 9000,
"end": 12000,
"lines": [
"Tom & Jerry"
]
}
]
}
So sehen echte Schäden aus — gemischte Zeilenenden, verirrte Leerzeichen, leere Felder. Im Vergleich zum sauberen Beispiel oben wird sichtbar, was der Parser verzeiht.
Häufige Fragen
Was passiert bei SMI nach JSON mit dem `<STYLE>`-Block?
Er fällt weg: Die JSON-Ausgabe hat zwar ein `styles`-Objekt, aber nichts bildet SAMIs CSS darauf ab, deshalb bleibt es leer. Dasselbe gilt für den `<TITLE>` und die `Class=`-Verweise. Betonung innerhalb des Blocktextes ist etwas anderes — sie gehört zur Zeile und kommt im `tags`-Array an.
Wie kommt die Positionierung aus SMI in JSON an?
Als Feld am Block, nicht als CSS-Klasse: Die Lage, die `<STYLE>` einst über `Class=` vergab, steht in der JSON-Ausgabe direkt beim Block. Der Bezug auf eine externe Regel fällt damit weg, die Information bleibt.
Wie sieht die Ausgabe aus, wenn SMI zu JSON wird?
Wie JSON: ein Array aus Block-Objekten, jedes mit eigener `id`, `start` und `end`. Jeder SMI-Block wird ein JSON-Block, in derselben Reihenfolge, mit demselben Text.
Bleiben die SMI-Zeiten in der JSON-Datei exakt?
Ja, auf die Millisekunde — aus `Start=4126` wird `4126`, ohne Rundung. SAMI kennt nur Startpunkte, deshalb übernimmt JSON das Ende des vorherigen Blocks als Ende des nächsten; das ist dieselbe Zeitachse, anders notiert.
Behalten SMI-Blöcke in der JSON-Ausgabe ihre Reihenfolge?
Ja, und sie werden unterwegs nach Startzeit sortiert — der früheste zuerst. War die SMI-Datei ungeordnet, stellt JSON die Reihenfolge wieder her; das ändert die Struktur, nicht den Inhalt.
Lässt sich JSON wieder nach SMI konvertieren?
Ja, und diese Richtung hat ihre eigene Liste: JSON nach SMI verliert Stile und Karaoke. Die Liste unterscheidet sich von der obigen, weil die beiden Formate unterschiedliche Dinge behalten.