JSON in LRC umwandeln
Oder Untertiteltext einfügen
Was diese Konvertierung ändert
5 Sachen entfallen oder brauchen eine Entscheidung
- Zeitangaben
die Endzeiten der Untertitelblöcke (das Ausgabeformat zeichnet nur auf, wann ein Block beginnt)
- Formatierung
die gesamte Formatierung (Fett, Kursiv, Farbe, Kontur, Schatten)
- Positionierung
die Positionierung auf dem Bildschirm (jeder Block kehrt an die Standardposition zurück)
- Karaoke
Karaoke-Zeitangaben (Hervorhebung pro Silbe)
- Genauigkeit
Zeitgenauigkeit — die Uhr der Ausgabe ist gröber, jeder Zeitstempel wird also auf die nächsten 10 ms gerundet
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.
JSON in LRC umwandeln: Datei hineinziehen oder Text einfügen, die LRC-Fassung mitnehmen. Der Browser erledigt die Arbeit; hochgeladen wird nichts.
Die Formate speichern nicht dasselbe: LRC kennt nur Startmarken, also gehen Endzeiten, Stil, Position, Karaoke und die Millisekunden verloren. Die Liste oben ist eine Eigenschaft der Formate, nicht Ihrer Datei.
Auch eine ganze Sammlung ist kein Problem: Die Warteschlange verarbeitet sie seriell und packt alles in ein ZIP.
Beispiele
Eine typische JSON-Datei, nach LRC konvertiert
Eingabe
{
"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"
}
]
}
Ausgabe
[ti:Fixture: typical]
[00:00.00]Hello world.
[00:00.00]Second line.
[00:02.50]Plain line.
[00:02.50]Styled line.
[00:04.50]Roger: I am here.
In dieser Ausgabe verloren: Endzeiten, Stil, Position, Karaoke und Zeitauflösung. Alles andere stimmt Zeile für Zeile.
Dieselbe Konvertierung mit widerspenstiger Eingabe
Eingabe
[
{ "start": 0, "end": 1000, "lines": ["First."] },
{ "start": 1000, "end": 2000, "text": "Second." },
"not an object",
{ "start": 2000, "end": 3000, "lines": ["Third."], "class": "top" }
]
Ausgabe
[00:00.00]First.
[00:01.00]Second.
[00:02.00]Third.
Solche Schäden haben echte Dateien – gemischte Zeilenenden, verirrte Leerzeichen, leere Felder. Vergleichen Sie mit dem sauberen Beispiel oben, um zu sehen, was der Parser verzeiht.
Häufige Fragen
Was passiert mit der Endzeit jeder JSON-cue in LRC?
Sie fällt weg. LRC notiert nur, wann eine Zeile beginnt; ein Liedtext-Player lässt sie stehen, bis die nächste einsetzt. Ein end-Feld wäre also ohne Wirkung. Der start-Wert aus JSON bleibt unverändert.
Warum verschieben sich die Zeitstempel von JSON nach LRC?
LRC schreibt [00:04.12] und damit Hundertstel, JSON schreibt 4126 für ganze Millisekunden. Beim Übertragen wird auf die nächsten 10 ms gerundet; aus 4126 ms werden 4,13 s. Die Reihenfolge bleibt, keine cue wandert weiter als 5 ms.
Was passiert mit Fett, Kursiv und Farbe von JSON nach LRC?
LRC speichert überhaupt keine Gestaltung. Weder die tags einer Zeile noch ein Eintrag im styles-Objekt der JSON-Datei finden einen Platz; jede Zeile wird als reiner Text geschrieben. Die Wörter selbst bleiben unberührt.
Wie sieht die LRC-Ausgabe aus, wenn JSON zu LRC wird?
Jede Zeile trägt ihre eigene Zeitmarke in eckigen Klammern, Nummern gibt es nicht. Eine zweizeilige JSON-cue wird zu zwei Zeilen mit derselben Marke – so sagt LRC, dass beide zusammengehören. Text und Reihenfolge bleiben.
Kann ich LRC zurück nach JSON wandeln?
Ja, aber das ist eine eigene Richtung mit eigener Verlustliste: LRC hat keine Endzeiten, also fehlt beim Rückweg timing. Die Liste unterscheidet sich von der hier gezeigten, weil beide Formate verschiedene Dinge behalten.
Was passiert mit der Position von JSON nach LRC?
Die position aus JSON wird nicht übernommen, weil LRC keine Aussage über den Bildschirmort kennt. Jede Zeile erscheint dort, wo der Player sie platziert – bei den meisten unten mittig.