SMI 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)
- Genauigkeit
Zeitgenauigkeit — die Uhr der Ausgabe ist gröber, jeder Zeitstempel wird also auf die nächsten 10 ms gerundet
- 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 LRC. Datei hineinziehen oder Text einfügen — zurück kommt die LRC-Fassung. Die Konvertierung läuft vollständig im Browser, ohne Upload und ohne Konto.
LRC ist ein Liedtextformat und damit die ärmste Zielform dieser Seite: Eine Zeile beginnt zu einem Zeitpunkt, mehr braucht sie nicht. Deshalb verlieren SMI-Dateien hier die Endzeiten, die Stile aus dem `<STYLE>`-Block, die Positionierung, die Präzision (LRC speichert Hundertstel) und die SAMI-eigenen Konstruktionen. Übrig bleiben Text und Startzeit.
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 LRC 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
[00:01.00]Hello there.
[00:03.50]How are you?
[00:03.50]Fine, thanks.
Verloren in dieser Ausgabe: Endzeiten, Stile, Positionierung, Präzision und SAMI-eigene Konstruktionen. Der Text bleibt.
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
[00:02.50]Line one
[00:02.50]Line two
[00:09.00]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 LRC mit den Endzeiten?
Sie fallen weg: LRC notiert nur den Beginn einer Zeile, ein Ende wäre für einen Liedtext-Player redundant. Ein SMI-Block endet dort, wo der nächste `<SYNC>` beginnt; in LRC bleibt nur der Start übrig.
Warum haben sich bei SMI nach LRC die Zeitstempel verschoben?
LRC speichert Zeit als `[00:04.12]`, SMI als `Start=4126` — Hundertstel gegen Tausendstel —, also wird jeder Zeitcode auf die nächsten 10 ms gerundet: aus 4126 Millisekunden werden 4,13 Sekunden. Nichts wird gestreckt oder umsortiert, und kein Block wandert um mehr als 5 ms.
Was geht bei SMI nach LRC von den Stilen verloren?
Alles: LRC kennt keine Schrift, keine Farbe und keine Klasse. Die Regeln, die `<STYLE>` für `Class=ENCC` vergibt, kommen nicht an, und der Text erscheint ohne sie. Dasselbe gilt für die Positionierung aus den CSS-Klassen.
Wie kommt ein zweizeiliger SMI-Block in LRC an?
Als zwei Zeitstempelzeilen mit derselben Zeit — so sagt LRC, dass die beiden zusammengehören. Das `<br>` der SMI-Datei verschwindet dabei, die beiden Zeilen bleiben aber ein Paar.
Behalten SMI-Blöcke in der LRC-Ausgabe ihre Reihenfolge?
Ja, und sie werden unterwegs nach Startzeit sortiert — der früheste zuerst. War die SMI-Datei ungeordnet, stellt LRC die Reihenfolge wieder her; das ist eine Änderung der Struktur, nicht des Inhalts.
Lässt sich LRC wieder nach SMI konvertieren?
Ja, und diese Richtung hat ihre eigene Liste: LRC nach SMI verliert die Zeitachse, weil LRC nur Startpunkte kennt. Eine SMI-Datei braucht dagegen keinen Endzeitpunkt — der nächste `<SYNC>` beendet den Block.