Korrigieren Sie Untertitel, die nicht mit dem Audio synchron sind
Messen Sie einen Moment, in dem das gesprochene Wort und die Bildunterschrift übereinstimmen sollten, und geben Sie dann die konstante Differenz ein. Wählen Sie „Später“, wenn der Untertitel zu früh erscheint, und „Früher“, wenn er zu spät erscheint. Jeder Cue erhält den gleichen Millisekunden-Offset, sodass ein konstanter Synchronisierungsfehler korrigiert wird, ohne dass sich die Cue-Dauer ändert.
UTF-8-kodierte SubRip-Datei (.srt) oder WebVTT-Datei (.vtt) bis 20 MB. Sie wird nur in diesem Tab gelesen.
Ein konstanter Versatz fixiert eine Untertitelspur, die vom Anfang bis zum Ende gleichmäßig früh oder spät ist.
Wenn der Fehler während der Wiedergabe zunimmt, liegt das Problem an der Drift oder der Wiedergabegeschwindigkeit und ein einzelner Offset kann das Problem nicht beheben.
WebVTT-Cue-Einstellungen, Bezeichner, Kommentare, Stilblöcke und Untertiteltext bleiben erhalten, während sich die Timing-Linien ändern.
So funktioniert es
So wird es gemacht
- Lies die UTF-8-Datei im Browser und erkenne anhand von Kopfzeile, Endung und Zeitzeilen, ob es sich um SubRip oder WebVTT handelt.
- Zerlege jede gültige Cue-Zeitzeile in Start, Trennpfeil, Ende und bei WebVTT mögliche Einstellungen nach der Endzeit.
- Wandle beide Zeitpunkte in ganze Millisekunden um und addiere für „später“ beziehungsweise subtrahiere für „früher“ denselben gerundeten Versatz.
- Entferne einen Cue, dessen Ende bei oder vor null liegt. Beginnt er nur vor null, begrenze den Start auf null oder entferne ihn vollständig, je nach gewählter Regel.
- Schreibe SRT-Zeiten mit Komma und WebVTT-Zeiten mit Punkt als Millisekundentrenner zurück. Stunden werden beibehalten und bei Bedarf erweitert.
- Setze die unveränderten Text-, Kennungs-, Kommentar- und Einstellungszeilen wieder zusammen und biete die vollständige verschobene Datei an.
Wovon es ausgeht
- Derselbe feste Versatz gilt für jeden Cue. Das korrigiert einen konstanten Zeitfehler, aber keine langsam anwachsende Abweichung durch unterschiedliche Bildraten oder Schnittfassungen.
- Nur syntaktisch gültige SRT- oder WebVTT-Zeitzeilen werden verändert. Andere Textblöcke bleiben byteinhaltlich erhalten, abgesehen von der vereinheitlichten UTF-8-Decodierung und den Zeilenumbrüchen.
- Der Versatz wird auf eine ganze Millisekunde gerundet, weil beide unterstützten Formate Zeitstempel nur mit Millisekundengenauigkeit schreiben.
- Ein Cue, dessen Ende bei oder vor null liegt, kann nicht sichtbar werden und wird immer entfernt. Ein nur teilweise vor null liegender Cue folgt der gewählten Begrenzungsregel.
- Überlappungen zwischen Cues werden nicht aufgelöst. Weil alle Zeiten gleich verschoben werden, bleiben bestehende Abstände und Überlappungen untereinander identisch.
- Die Datei muss UTF-8-kodiert sein. Eine ungültige Bytefolge wird nicht stillschweigend mit einer anderen historischen Zeichencodierung interpretiert.
Fragen
Warum sind die Untertitel am Anfang richtig, am Ende aber falsch?
Dabei handelt es sich eher um eine Zeitabweichung als um einen konstanten Versatz, der häufig durch unterschiedliche Bildraten oder Wiedergabegeschwindigkeiten verursacht wird. Durch das Verschieben jedes Cues um den gleichen Betrag kann ein Fehler, der mit der Zeit zunimmt, nicht korrigiert werden.
Kann das Tool sowohl SRT- als auch WebVTT-Untertitel verschieben?
Ja. SRT verwendet durch Kommas getrennte Millisekunden und WebVTT verwendet einen WEBVTT-Header mit durch Punkte getrennten Millisekunden; Das Tool erkennt jedes Format und schreibt dasselbe Format zurück.
Quellen
Die vollständige Methode, das Rechenbeispiel und alle Annahmen hinter diesem Ergebnis stehen auf Untertitel zeitlich verschieben.