Zum Hauptinhalt springen
SubtitleMatrix

SUP (PGS) in SRT umwandeln

MedieneingabeBitmap-Untertitel (PGS / VobSub)

Der erste Lauf lädt den Textleser herunter — etwa 4 MB plus das Sprachmodell, von dieser Seite bereitgestellt und danach vom Browser zwischengespeichert. Nichts wird hochgeladen, und das Ergebnis ist maschinell gelesen: Korrekturlesen Sie es, bevor Sie sich darauf verlassen.

Optionen

Ein Bitmap-Untertitel ist ein Bild von Text, die Wörter müssen also wieder herausgelesen werden. Sagen Sie dem Leser, in welcher Sprache die Untertitel geschrieben sind — die Liste deckt alle Sprachen ab, in denen diese Website erscheint. Russische Untertitel mit dem englischen Modell gelesen ergeben Rauschen, nicht Russisch. Nur das gewählte Modell wird heruntergeladen (die anderen nie), ein Wechsel kostet also einen Download pro Sprache, danach aus dem Cache.

Eine .sup-Datei ist ein PGS-Strom, das Bild-Untertitelformat von Blu-ray-Discs. Darin steht kein einziges Zeichen: Jeder Untertitel ist als Bitmap gespeichert, zusammen mit einer Palette und dem Moment, in dem er erscheinen soll, und ein Player legt ihn über das Video. Text daraus zu gewinnen heißt also, die Buchstaben in jedem Bild zu lesen. Diese Seite tut das im Tab mit einer Texterkennung, die die Seite selbst ausliefert, und schreibt das Ergebnis als .srt.

Das Format ist eine Folge von Segmenten, jedes mit einem dreizehn Byte langen Kopf, der einen Präsentationszeitstempel in 90-kHz-Einheiten, einen Typ und eine Länge trägt. Vier Typen zählen: die Palettendefinition (PDS), die Indexwerte über YCbCr auf volle RGB abbildet; die Objektdefinition (ODS), die eine lauflängencodierte Bitmap hält; die Präsentationskomposition (PCS), die sagt, welche Objekte wo im Bild liegen; und der Anzeigesatz, der sie zusammensetzt. Der Start eines Blocks ist der Zeitstempel des Anzeigesatzes, der ihn zeigt. Ein PGS-Strom trägt überhaupt keine Endzeit – ein Untertitel bleibt auf dem Bildschirm, bis der nächste Anzeigesatz ihn ersetzt –, deshalb ist das Ende jedes Blocks hier der Start des nächsten, genau wie es ein Player macht.

Weil jeder Block von einer Maschine gelesen wird, ist der Text eine Lesung und keine Transkription: Eine Serifenschrift in kleiner Größe, eine ungewöhnliche Schrift oder eine kräftige Kontur kann ein Zeichen in ein anderes verwandeln. Die Datei vor dem Weiterverwenden Korrektur lesen. Dieser Hinweis ist kein Beiwerk – es ist die einzige Stelle auf dieser Seite, an der die Ausgabe nicht aus dem abgeleitet ist, was die Datei sagte, und die Seite sagt es, statt das Ergebnis als exakt auszugeben.

Die Sprache wählen, in der die Untertitel tatsächlich geschrieben sind. Die Liste deckt alle Sprachen ab, in denen diese Website erscheint; jedes Modell liest seine eigene Schrift. Ein englisches Modell über japanischen Untertiteln erzeugt Rauschen statt einer schlechten Übersetzung, weil der Erkenner nach Formen sucht, die nicht da sind. Nur das gewählte Modell wird heruntergeladen und danach zwischengespeichert.

Blöcke, deren Bilder überhaupt keinen Text ergeben – ein Fade-Einzelbild, ein Logo, ein schwarzer Block –, werden weggelassen und in der Verlustliste gezählt, statt als leere Zeilen geschrieben zu werden. Alles, was Bild war, bleibt im Geist Bild: Schrift, Farbe, Kontur und Position auf dem Bildschirm gibt es in einer .srt nicht, und die Verlustliste sagt das einmal für die ganze Datei.

Häufige Fragen

Was steckt in einer .sup-Datei, das die SRT-Umwandlung zu einer Erkennungsaufgabe macht?

Segmente, keine Zeichen. Jeder Untertitel in einem PGS-Strom ist ein Objekt: eine lauflängencodierte Bitmap aus Palettenindizes plus eine Palettendefinition, die diese Indizes in RGB verwandelt. Die einzigen textähnlichen Werte in der Datei sind die Präsentationszeitstempel, 90-kHz-Ganzzahlen statt etwas, das ein Mensch liest. Das in SRT umzuwandeln heißt, jede Bitmap auf eine Zeichenfläche zu legen und die Buchstaben zu erkennen; deshalb braucht das Ergebnis eine Korrekturlesung und fragt die Seite nach der Sprache der Untertitel.

Warum endet der letzte Untertitel in der .srt-Ausgabe ein paar Sekunden später als er sollte?

Weil PGS nie sagt, wann ein Untertitel endet. Ein Player zeigt eine Komposition, bis die nächste kommt oder der Strom geleert wird, die einzige Endzeit in der Datei ist also der Start der nächsten. Für den letzten Block gibt es keine nächste; die Seite gibt ihm zwei Sekunden und hält diese Wahl in der Verlustliste fest. Hat die Disc ihre letzte Zeile wirklich zehn Sekunden stehen lassen, ist die ehrliche Korrektur eine Verschiebung oder eine Daueränderung, nicht eine im Konverter versteckte Vermutung.

Welches Sprachmodell passt für .sup-Untertitel mit japanischen und englischen Zeilen?

Das der Mehrheit des Dialogs. Ein PGS-Bild kann Schriften in einer Zeile mischen – ein japanischer Satz mit einem englischen Lehnwort in lateinischen Buchstaben ist häufig –, aber der Erkenner bekommt pro Lauf ein Modell, und ein auf eine Schrift trainiertes Modell liest die andere als Unsinn. Wechselt die Datei wirklich zwischen zwei Schriften, zweimal laufen lassen, einmal pro Sprache, und die Zeilen behalten, die jeder Durchgang richtig erkannt hat: Die Ausgabe ist eine einfache .srt, das Zusammenführen ist also ein Diff und kein Neu-Export.

Werden die Farben der Untertitel aus der .sup-Datei in die SRT übernommen?

Nein, und sie können es nicht. Eine .sup codiert Farbe dreifach: in der Palette (YCbCr mit Alphakanal, pro Block), in der Komposition (wo die Bitmap auf einem 1920×1080-Bild sitzt) und in der in die Bitmap gezeichneten Kontur und dem Schatten. SRT hat keinen dieser Plätze. Die Seite liest die Helligkeit jedes Pixels, um zu entscheiden, was Tinte und was Hintergrund ist, mehr braucht die Texterkennung nicht, und die Verlustliste meldet Gestaltung einmal für die Datei, statt vorzugeben, die Farben hätten überlebt.

Einige Blöcke kamen leer oder fehlend aus dem .sup-Export. Was ist mit ihnen passiert?

Ein Bild, das keinen Text ergab, wurde verworfen, statt als leerer Untertitel geschrieben zu werden. Das passiert bei Ein- und Ausblendbildern, bei Blöcken, die nur ein Logo oder ein Symbol sind, und bei sehr kleinem Text unter der Auflösung des Erkenners. Jeder Fall wird in der Verlustliste gezählt, die erhaltene Datei ist also nicht stillschweigend kürzer als die abgegebene. Ist die Zahl hoch, liegt die übliche Ursache im falschen Sprachmodell oder in einem Strom mit ungewöhnlich kleinen Bitmaps.

Wird die .sup-Datei oder werden ihre Bilder irgendwohin hochgeladen?

Nein. Die Texterkennung läuft im Tab, und ihr Worker, ihr WebAssembly-Kern und ihr Sprachmodell werden alle von dieser Seite ausgeliefert und vom Browser zwischengespeichert. Die einzigen Anfragen der Seite gelten diesen Dateien. Das zählt hier mehr als auf einer Textseite: Ein von einer Disc extrahierter PGS-Strom ist oft das eine Material, das ein Studio oder eine Anwaltskanzlei am wenigsten an Dritte geben will, und der ganze Zweck dieser Seite ist, dass sie es nicht müssen.

Verwandte Werkzeuge