← Zurück zum Blog
EngineeringBuild in PublicVideo

Mein Splitscreen-Fix bestand jeden Test. Er behob den halben Bug.

Mein KI-Clipper stapelt zwei Sprecher im vertikalen Splitscreen. Fast ein Drittel der Clips zeigte Bildteile doppelt. Mein erster Fix behob nur die Hälfte.

11. Oktober 2026

Mein Splitscreen-Fix bestand jeden Test. Er behob den halben Bug.

Erstellt am 12. Oktober 2026 · Aktualisiert am 12. Oktober 2026

Katto macht aus langen Videos vertikale Clips. Ich baue es allein und öffentlich. Am 10. Oktober habe ich einen Geometriefehler im Splitscreen behoben, ihn getestet, ausgeliefert und „behoben“ ins Changelog geschrieben. Am selben Abend habe ich festgestellt, dass derselbe Fehler immer noch auftrat. Und selbst nach der zweiten Korrektur war der Splitscreen noch nicht gut.

Wofür ein Splitscreen gut ist

Ein Podcast oder ein Interview wird meist weit gefilmt: zwei Personen an einem Tisch, jede auf einer Seite eines 16:9-Bildes. Ein vertikales Short ist 9:16. Schneidet man die Mitte aus, sieht man den Tisch und kein einziges Gesicht. Folgt man der Person, die gerade spricht, verschwindet die andere jedes Mal, wenn sie antwortet.

Wenn zwei Personen weit genug auseinandersitzen, macht Katto etwas anderes: Es schneidet um jede Person ein eigenes Fenster aus und stapelt die beiden übereinander. Zwei Panels mit halber Höhe, beide Gesichter die ganze Zeit sichtbar. Das ist die übliche Lösung für Aufnahmen mit zwei Sprechern, und genau das beschreibt die Reframe-Seite.

Was schiefgelaufen ist

Jedes Panel hat eine Breite, und der Code hat diese Breite begrenzt, damit sich die beiden Fenster nicht überlappen. Die Obergrenze wurde aus dem Abstand zwischen den beiden Personen abgeleitet. Das klingt vernünftig, misst aber das Falsche.

Ein echter Fall: eine Quelle mit 1920 Pixeln Breite, die beiden Personen 1300 Pixel voneinander entfernt. Die Obergrenze lag bei 1235, die Panelbreite bei 1214, die Grenze griff also nicht. Dann wurde jedes Fenster auf seine Person zentriert und, wo es über den Rand hinausragte, ins Bild zurückgeschoben. Das linke Fenster rutschte 358 Pixel nach rechts, das rechte 236 Pixel nach links. Aufeinander zu.

Zwei Fenster mit je 1214 Pixeln brauchen 2428 Pixel, um nebeneinander zu passen. Das Bild hat 1920. Egal, wie man sie anordnet: Mindestens 508 Pixel landen gleichzeitig in beiden Panels.

Ein 1920 Pixel breites Bild mit zwei Fenstern von je 1214 Pixeln: Sie brauchen 2428 Pixel, also liegen mindestens 508 Pixel in beiden

Auf dem Bildschirm ist das ein Streifen desselben Bildes unten im oberen Panel und oben im unteren Panel: eine Schulter doppelt, ein halbes Gesicht doppelt, manchmal die ganze Person doppelt.

Die Regel, mit der ich hätte anfangen sollen, passt in eine Zeile: Zwei Fenster der Breite W passen nur dann nebeneinander, wenn 2W höchstens so breit ist wie das Bild. Der Abstand zwischen den Personen spielt dabei keine Rolle.

Wie oft es passiert ist

Ich bin die Splitscreen-Clips durchgegangen, die Katto bereits ausgeliefert hatte, und habe die Überlappung direkt aus ihrer gespeicherten Geometrie abgelesen: rechter Rand des ersten Fensters minus linker Rand des zweiten.

31 % davon überlappten. Darunter:

ÜberlappungAnteilWas man sieht
300 px oder mehr18 %eine Person oder ein Oberkörper doppelt
150 bis 299 px15 %ein Stück Körper am inneren Rand
60 bis 149 px36 %ein Streifen Hintergrund
unter 60 px30 %nichts, was einem auffallen würde

Die Prozentwerte sind gerundet, deshalb ergeben sie zusammen 99. Grob ein Drittel unsichtbar, ein Drittel dezent, ein Drittel klar kaputt. Der schlimmste Fall waren die 508 Pixel von oben.

Meine erste Zählung ergab 23 %, nicht 31. Ich hatte die Überlappung über ein Feld berechnet, das bei einigen älteren Clips fehlt, und diese Zeilen wurden kommentarlos übersprungen. Die Zahl wirkte plausibel, also hätte ich sie beinahe behalten.

Die Korrektur und die Tests, die sie bestanden hat

Die neue Obergrenze ist die Regel aus einer Zeile: jedes Panel höchstens halb so breit wie das Bild, und die beiden Fenster so platziert, dass sie sich nicht kreuzen können. Sie greift nur, wenn sich die ursprüngliche Platzierung tatsächlich überlappt. Eine frühere Version hat die Geometrie in jedem Fall neu berechnet und eine Handvoll gesunder Clips um ein, zwei Pixel verschoben. Eine Korrektur, die Clips anfasst, die in Ordnung waren, ist ein zweiter Bug.

Dann die Prüfungen. Ich habe eine Reihe gespeicherter Clips mit ausgeschalteter und eingeschalteter Korrektur neu durchgespielt: Alles, was sich nicht überlappte, kam identisch heraus, und geändert haben sich genau die Clips, die sich überlappten. Dann ein neuer Job mit einem echten Video: 12 Splitscreen-Clips, die Grenze griff bei 3, keiner überlappte.

Ich habe es ausgeliefert und im Changelog als behoben eingetragen.

Am selben Abend

Noch ein Testvideo. Ein Clip kam mit 44 Pixeln Überlappung heraus, bei eingeschalteter Korrektur.

Es gab zwei Funktionen. Die eine behandelt den klassischen Fall, zwei Personen, die sich am Tisch gegenübersitzen, und gibt jeder eine Nahaufnahme. Die andere ist der allgemeine Rückfall, der greift, wenn die erste ablehnt: Sie nimmt in jedem Frame das Gesicht ganz links und das ganz rechts und teilt daran auf. Beide erzeugen einen Splitscreen-Clip mit ihrem eigenen Paar von Fensterpositionen. Beide hatten denselben Fehler, fast Wort für Wort. Ich hatte die erste korrigiert und die zweite nie geöffnet.

Das Ärgerliche ist, wie überzeugend die Belege aussahen. Meine Messung und meine Testreihe mischten beide Codepfade, und ich hatte keine Ahnung davon. Die erste Korrektur hat genug von der Stichprobe bereinigt, dass das Ergebnis vollständig wirkte. Eine Messung an gespeicherten Ergebnissen zählt Symptome. Sie sagt einem nicht, an wie vielen Stellen sie entstehen.

Die zweite Korrektur ist dieselbe Regel in der zweiten Funktion. Auf derselben Reihe neu durchgespielt: vier weitere Clips korrigiert, Überlappungen von 56, 124, 230 und 340 Pixeln alle auf null, sonst hat sich nichts bewegt. Der Clip mit 56 Pixeln war unberührt durch die Korrektur vom Morgen gekommen. Das ist das Leck, auf frischer Tat ertappt.

Die Suche nach einer dritten Stelle

Bevor ich ein zweites Mal „behoben“ schrieb, habe ich den Code nach allem durchsucht, was eine Fensterposition setzt. Vier Stellen, nicht eine. Zwei sind die Funktionen von oben, inzwischen beide korrigiert. Die dritte baut Panels aus einer Trennlinie, die sie bereits gefunden hat, und begrenzt jedes Panel auf den Platz auf seiner Seite dieser Linie, sodass sich ihre beiden Fenster schon von der Konstruktion her nicht kreuzen können. Die vierte reicht nur die Zahlen der dritten weiter.

Die Aussage ist diesmal also enger gefasst: Kein Splitscreen, der seit dem 10. Oktober gerendert wurde, zeigt denselben Bildteil in beiden Panels. Clips, die davor gerendert wurden, behalten die Geometrie, mit der sie erstellt wurden.

Was noch nicht stimmt

Kein doppeltes Bild ist eine Untergrenze, kein guter Splitscreen. Drei Dinge sehe ich heute bei echten Videos:

Die Panels sind zu breit für die Personen darin. Jedes Panel wird nach dem Bild bemessen, nicht nach der Person. Bei einer weiten Studioaufnahme füllt jemand vielleicht ein Drittel seines Panels, und der Rest gehört der Kulisse dahinter. Zwei halb leere Panels können schlechter aussehen als eine gut kadrierte Einstellung, und das ist der Grund, warum ich den Splitscreen noch nicht für mehr Arten von Aufnahmen freigegeben habe. Jedes Panel enger um seine Person zu ziehen, ist der nächste Arbeitsschritt.

Ein kurzer Wortwechsel innerhalb eines längeren Clips wird nicht geteilt. Die Entscheidung fällt für den ganzen Clip. Wenn eine Person vierzig Sekunden redet und die zweite fünf Sekunden dazwischengeht, bleibt der Clip bei einer einzigen Kadrierung, und die Antwort passiert außerhalb des Bildes.

Manche Aufnahmen mit zwei Personen werden nie als solche erkannt. Der Auslöser zählt Gesichter. Im Profil, aus der Entfernung oder bei schlechtem Licht kann die Gesichtserkennung eine Person übersehen, die die Körpererkennung in jedem Frame sieht, und der Clip fällt auf eine einzige Kadrierung zurück.

Nichts davon verdoppelt etwas. Es ist der Unterschied zwischen einem Splitscreen, der nicht kaputt ist, und einem, der wirklich gut ist, und ich sage das lieber offen, als „behoben“ für beides stehen zu lassen.

Was ich daraus mitnehme

Wenn eine Korrektur funktioniert, such die anderen Stellen, die dieselbe Ausgabe erzeugen. Nicht nur die Stelle, an der du den Bug gefunden hast: jede Stelle, die dieselbe Art von Ergebnis liefern kann. Hier war es eine einzige Suche nach einem Feldnamen, und ich habe sie nach dem Ausliefern gemacht statt davor.

Eine aggregierte Zahl kann dir nicht sagen, dass eine Korrektur vollständig ist. Sie ist stark gesunken, und genau so ein großer Rückgang bringt einen dazu, nicht mehr weiterzusuchen.

Eine Metrik, die stillschweigend Zeilen überspringt, ist schlimmer als eine, die abbricht. Ein fehlendes Feld hat aus 31 % ohne eine einzige Warnung 23 gemacht.

Geh von der Bedingung aus, nicht von einem Stellvertreter. Die Obergrenze wurde aus dem Abstand zwischen zwei Personen gebaut, weil diese Zahl gerade zur Hand war. Die echte Grenze war die Breite des Bildes, und die war ebenfalls zur Hand.

Der Changelog-Eintrag (auf Englisch) meldete am 10. Oktober „behoben“, ein paar Stunden zu früh. Jetzt steht dort, was passiert ist.

Ähnliche Artikel

Bereit, deine Videos in virale Clips zu verwandeln?

Katto schneidet, untertitelt und rahmt deine langen Videos automatisch zu Kurzform-Content um.

Katto kostenlos testen →