Untertitelposition ändern
Oder Untertiteltext einfügen
Optionen
Neun voreingestellte Zellen plus eine Möglichkeit zum Entfernen. Geschrieben wird die Markierung {\anN} in Nummernblock-Reihenfolge — 7/8/9 ist die obere Reihe, 4/5/6 die mittlere, 1/2/3 die untere —, und sie steht vor der ersten Zeile jedes Blocks. ASS und SSA lesen sie als echten Ausrichtungscode zurück; in SRT ist es wörtlicher Text, den libass, VLC und mpv beachten und einfachere Player ausdrucken. Vorhandene \pos-Koordinaten werden nie angefasst. Wählen Sie die letzte Möglichkeit, um Positionsmarkierungen zu entfernen, statt eine hinzuzufügen.
Diese Seite verschiebt jeden Block einer Untertiteldatei an eine von neun Bildschirmpositionen oder entfernt die Positionsmarkierung aus einer Datei, die bereits eine hat. Sie schreibt einen Ausrichtungscode {\anN} an den Anfang der ersten Zeile jedes Blocks, wobei N die Zellen wie ein Ziffernblock nummeriert: 7, 8, 9 oben, 4, 5, 6 in der Mitte, 1, 2, 3 unten. Diese Anordnung ist keine Lesereihenfolge, und die Beispiele dieser Seite existieren vor allem, damit man nicht versehentlich oben links wählt und unten links bekommt.
Die Markierung ist das eine Stück Platzierung, auf das sich drei Formate einigen. In ASS und SSA ist sie ein gültiger Override-Code, wird als eigenes Feld in den Block zurückgelesen und in der dokumentierten Reihenfolge hinter einem eventuellen \pos wieder ausgegeben – eine Datei, die ASS nie verlässt, übersteht den Rundlauf also exakt. In SRT gibt es überhaupt keine Platzierungssyntax, die Markierung wird deshalb als wörtlicher Text an den Zeilenanfang geschrieben: libass-basierte Player wie VLC und mpv beachten sie, ein Player, der sie nicht kennt, druckt die vier Zeichen auf den Bildschirm. Die Seite sagt das offen, statt eine Platzierung zu versprechen, die sie nicht garantieren kann.
Position wird als Eigenschaft des ganzen Blocks behandelt, die Markierung steht deshalb nur vor der ersten Zeile, auch wenn der Block zwei oder drei Zeilen lang ist. Ein vorhandenes \pos(x,y) bleibt unangetastet: Eine Pixelkoordinate bindet den Block an eine Bildschirmgröße und bricht auf jeder anderen, während ein Ausrichtungscode den Player die Position selbst berechnen lässt; einen von Hand gesetzten Block zu verschieben ist nicht, worum diese Seite gebeten wurde.
Die Auswahl „Entfernen“ in der Positionsliste ist eine echte Anweisung und keine zehnte Position. Sie entfernt die führende Markierung und die gespeicherte Ausrichtung aus jedem Block – der einzige Weg, eine SRT-Datei wieder in ihre schlichte, markerfreie Form zu bringen –, während eine Markierung mitten in einer Zeile stehen bleibt, weil sie dort Dialog und keine Platzierung ist. Nichts wird hochgeladen, und die Zeitcodes werden nie berührt.
Beispiele
Zwei schlichte SRT-Blöcke, nach oben mittig verschoben
Eingabe
1
00:00:01,000 --> 00:00:02,000
Hello there.
2
00:00:03,000 --> 00:00:04,000
Second line.
Ausgabe
1
00:00:01,000 --> 00:00:02,000
{\an8}Hello there.
2
00:00:03,000 --> 00:00:04,000
{\an8}Second line.
\an8 ist die obere mittlere Zelle – die mittlere Taste der oberen Reihe eines Ziffernblocks. Die Markierung steht am Textanfang und nicht auf einer eigenen Zeile; Zeitcodes, Blocknummern und Leerzeilen bleiben unberührt, die Datei ist also weiterhin eine gültige SRT-Datei, die je Block einfach vier zusätzliche Zeichen trägt.
Dieselbe Datei in der oberen und der unteren linken Ecke
Eingabe
1
00:00:01,000 --> 00:00:02,000
Hello there.
Ausgabe
1
00:00:01,000 --> 00:00:02,000
{\an7}Hello there.
Oben links ist 7, unten links ist 1 – sechs Schritte dazwischen, weil die Nummerierung einem Ziffernblock folgt und keiner Lesereihenfolge. Das ist die Zuordnung, die von Hand am häufigsten verwechselt wird, und deshalb hat jede der neun Voreinstellungen hier ein eigenes Beispiel: Eine einzige vertauschte Ziffer bleibt sonst unsichtbar, bis jemand das Video ansieht.
Ein ASS-Block, der bereits oben links stand
Eingabe
[Script Info]
ScriptType: v4.00+
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,{\an7\i1}Hello there{\i0}
Ausgabe
[Script Info]
ScriptType: v4.00+
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,{\an2}{\i1}Hello there{\i0}
Das alte \an7 wird gelöscht, bevor \an2 geschrieben wird, der Block trägt also eine Ausrichtung und nicht zwei – ein Duplikat ließe den Player die zuletzt gelesene nehmen, also einen Wert, den in diesem Lauf niemand gewählt hat. Das kursive Paar bleibt genau, wo es war. In ASS ist die Markierung ein echter Override-Code, hier erscheint also nichts davon als Text auf dem Bildschirm.
Markierungen aus einer Datei mit zwei verschiedenen entfernen
Eingabe
1
00:00:01,000 --> 00:00:02,000
{\an8}Hello there.
2
00:00:03,000 --> 00:00:04,000
{\an2}Second line.
Ausgabe
1
00:00:01,000 --> 00:00:02,000
Hello there.
2
00:00:03,000 --> 00:00:04,000
Second line.
„Entfernen“ streicht, was auch immer vorhanden war, und nicht nur die Voreinstellung, die man gewählt hätte, und schreibt nichts zurück. Eine Datei aus diesem Lauf spielt an der Standardposition des Players, und das ist der Punkt: Es ist der einzige Weg von einer Markierung zurück zu schlichtem Text, da keine Position als Abwesenheit einer Position ausgedrückt wird.
Häufige Fragen
Auf welcher Bildschirmposition liegt {\an1}, und warum beginnt die Zählung nicht oben links?
1 ist die untere linke Ecke. Die neun Werte folgen dem Ziffernblock: 7, 8, 9 ist die obere Zellenreihe, 4, 5, 6 die mittlere, 1, 2, 3 die untere. Oben links ist also 7, die Mitte ist 5, unten rechts ist 3. Die Positionsliste der Seite ist in Lesereihenfolge geschrieben und übersetzt diese Zahlen für Sie – der Hauptgrund, sie zu benutzen, statt die Markierung von Hand zu bearbeiten.
Funktioniert diese Seite auch mit WebVTT-, SAMI- oder TTML-Dateien?
Nein, und die Liste der angenommenen Formate ist mit Absicht kurz: nur SRT, ASS und SSA. WebVTT und TTML haben ihre eigene Platzierungssyntax – Cue-Einstellungen wie line: und align: oder tts:-Attribute –, und diese Seite schreibt sie nicht; sie anzunehmen hieße, dass der Lauf eine Positionsänderung meldet, während die Datei unverändert herauskommt. Aus demselben Grund bleibt JSON außen vor, dessen Positionsfeld fünf horizontale Werte statt neun Zellen kennt.
Ist die Markierung in einer SRT-Datei als Text sichtbar?
Das hängt vom Player ab, und diese Seite kann das nicht ändern. SRT hat keine Platzierungssyntax, {\an8} wird deshalb als gewöhnliche Zeichen am Zeilenanfang gespeichert. Auf libass aufbauende Player – unter anderem VLC und mpv – lesen es als Ausrichtungsanweisung und platzieren den Block entsprechend; einfachere Player behandeln es als Text und zeigen die vier Zeichen auf dem Bildschirm. Muss die Platzierung auf jedem Gerät garantiert sein, muss der Block ins Bild eingebrannt werden, was außerhalb dessen liegt, was eine Untertiteldatei leisten kann.
Wird ein vorhandenes \pos(x,y) von der neuen Position überschrieben?
Nein – \pos bleibt genau, wie es war. Eine Pixelkoordinate und ein Ausrichtungscode sind verschiedene Anweisungen: \an bittet den Player, die Position für den Bildschirm zu berechnen, auf dem er läuft, während \pos den Block auf einen Punkt bei einer Auflösung festnagelt. Ein von Hand gesetztes \pos zu entfernen würde absichtliche Arbeit zunichtemachen; diese Seite schreibt deshalb nur Ausrichtung und löscht nur eine frühere Ausrichtung, nie eine Koordinate.
Ein Block ist zwei Zeilen lang – bekommt jede Zeile eine eigene Markierung?
Nur die erste Zeile bekommt eine, weil eine Position zum Block gehört und nicht zur Zeile. Eine Markierung auf jeder Zeile wäre bestenfalls überflüssig und in ASS ein zweiter Override-Block, der dasselbe tut wie der erste. Beim Entfernen gilt dieselbe Regel rückwärts: Nur eine Markierung ganz vorne in der ersten Zeile wird gestrichen, eine mitten im Satz geschriebene gilt als Teil des Dialogs.
Was passiert, wenn ich dieselbe Position zweimal anwende?
Nichts – der zweite Lauf erzeugt eine byte-identische Datei und meldet, dass kein Block geändert wurde. Die Seite löscht jede vorhandene Markierung, bevor sie die neue schreibt; eine bereits gesetzte Voreinstellung wird also entfernt und als dieselben vier Zeichen wieder hinzugefügt. Das zählt, wenn eine Datei durch eine Prüfschleife geht: Ein erneuter Lauf, um sicherzugehen, dass die Position gesetzt ist, kann nichts verschieben, und der Download ist dieselbe Datei statt einer Kopie mit einer stillen Abweichung.