Zum Hauptinhalt springen
SubtitleMatrix

SBV in JSON umwandeln

Oder Untertiteltext einfügen

Was diese Konvertierung ändert

In diese Richtung geht nichts verloren — jedes Merkmal des Quellformats hat im Zielformat einen Platz.

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 SBV 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.

In dieser Richtung geht nichts verloren. Jede Eigenschaft, die SBV ausdrücken kann, hat ein Gegenstück in JSON: Zeitachse, Zeilenumbrüche und Text kommen vollständig an. Das gilt auch für eine SBV-Datei, die alle Möglichkeiten des Formats ausnutzt.

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 SBV-Datei, nach JSON konvertiert

Eingabe

0:00:01.000,0:00:03.500
The quick brown fox.

0:00:04.000,0:00:06.250
Jumps over the lazy dog.

0:00:07.000,0:00:09.000
Two lines here.
And a second one.

Ausgabe

{
  "version": 1,
  "cues": [
    {
      "start": 1000,
      "end": 3500,
      "lines": [
        "The quick brown fox."
      ]
    },
    {
      "start": 4000,
      "end": 6250,
      "lines": [
        "Jumps over the lazy dog."
      ]
    },
    {
      "start": 7000,
      "end": 9000,
      "lines": [
        "Two lines here.",
        "And a second one."
      ]
    }
  ]
}

Hier geht nichts verloren: beide Seiten Zeile für Zeile vergleichen.

Dieselbe Konvertierung mit einer unordentlichen Eingabe

Eingabe

0:00:02.000,0:00:04.000
Carriage-return line endings.

	0:00:06.000,0:00:08.000
Indented timecode, no final newline.

Ausgabe

{
  "version": 1,
  "cues": [
    {
      "start": 2000,
      "end": 4000,
      "lines": [
        "Carriage-return line endings."
      ]
    },
    {
      "start": 6000,
      "end": 8000,
      "lines": [
        "Indented timecode, no final newline."
      ]
    }
  ]
}

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

Wie sieht die Ausgabe aus, wenn SBV zu JSON wird?

Wie JSON: ein Array aus Block-Objekten, jedes mit eigener `id`, `start` und `end`. Jeder SBV-Block wird ein JSON-Block, in derselben Reihenfolge, mit demselben Text.

Bleiben die SBV-Zeiten in der JSON-Datei exakt?

Ja, auf die Millisekunde — feiner geht keines der beiden Formate. SBV schreibt einen Zeitpunkt als `0:00:04.126`, JSON denselben als `4126`; nichts wird gerundet oder verschoben, und ein Block, der 2,9 Sekunden sichtbar war, bleibt es.

Wie kommt ein zweizeiliger SBV-Block in JSON an?

Als zwei Einträge im `lines`-Array des Blocks. Die Zusammengehörigkeit bleibt — die beiden SBV-Zeilen sind weiter ein Untertitel in der JSON-Ausgabe.

Behalten SBV-Blöcke in der JSON-Ausgabe ihre Reihenfolge?

Ja, und sie werden unterwegs nach Startzeit sortiert — der früheste zuerst. War die SBV-Datei ungeordnet, stellt JSON die Reihenfolge wieder her; das ändert die Struktur, nicht den Inhalt, und ist beabsichtigt.

Lässt sich JSON wieder nach SBV konvertieren?

Ja, und das ist die verlustbehaftete Richtung: Stile, Positionierung und Karaoke haben in SBV keinen Platz. In dieser Richtung geht nichts verloren, der Preis entsteht also erst auf dem Rückweg.

Behält die JSON-Ausgabe die Zeichenkodierung der SBV-Datei?

Nein — die Ausgabe ist UTF-8 mit Unix-Zeilenenden und ohne Byte-Order-Mark, unabhängig von der SBV-Datei. UTF-16 oder eine Windows-Einzelbyte-Kodierung wird beim Einlesen dekodiert; die Ausgabe ist immer dieselbe UTF-8-JSON-Datei.

Verwandte Werkzeuge