Mausfolgendes Zoom in OBS für Tutorial-Videos einrichten
Wer Tutorials mit OBS aufnimmt, kennt wahrscheinlich dieses Problem: Beim Aufnehmen wirkt alles völlig klar. Nach Kompression und Wiedergabe auf einem kleineren Bildschirm ist für Zuschauer aber plötzlich nicht mehr offensichtlich, was angeklickt wurde, wo sich der wichtige Button befand oder auf welchen Teil der Oberfläche sie eigentlich achten sollten.
Auf 2K- und 4K-Desktops wird das noch deutlicher, besonders wenn der Arbeitsbereich ohnehin dicht gepackt ist. Während man selbst schnell durch Menüs navigiert und im Moment alles logisch erscheint, passiert für den Zuschauer gleichzeitig zu viel auf dem Bildschirm. Genau deshalb gefällt mir lokales Zoom mit Mausverfolgung direkt in OBS. Nicht weil es spektakulär aussieht, sondern weil es ein echtes Tutorial-Problem löst: Die Aufmerksamkeit wird sanft zu dem Bereich gezogen, der gerade wirklich wichtig ist.
Welche Version: Python oder Lua?
Der ältere Ansatz, den viele zuerst finden, ist angeldeejay/obs-zoom-to-mouse. Das Konzept ist einfach und weiterhin nützlich. OBS zoomt in eine Quelle hinein, danach folgt der sichtbare Ausschnitt dem Mauszeiger. Zuschauer können so den Aktionen folgen, ohne permanent den gesamten Bildschirm absuchen zu müssen.
Wenn ich das heute neu aufsetzen würde, würde ich aber nicht automatisch dort anfangen. Im ursprünglichen Repository steht bereits, dass das Projekt nicht mehr aktiv gepflegt wird, und es verweist ausdrücklich auf BlankSourceCode/obs-zoom-to-mouse, eine Lua-basierte Alternative. Für die meisten Creator ist diese Empfehlung sinnvoll. Die Lua-Version ist im Alltag meist angenehmer, weil man nicht zuerst Python-Runtime und OBS-Scripting-Umgebung aufeinander abstimmen muss.
Trotzdem lohnt es sich, den älteren Python-Weg zu verstehen. Viele bestehende Notizen und kopierte Setups beziehen sich weiterhin darauf. Wenn bereits eine Python-Konfiguration existiert, lautet die eigentliche Frage nicht, ob sie abstrakt „veraltet“ ist. Entscheidend ist, ob sie für den eigenen Workflow stabil genug läuft oder ob ein Wechsel zu Lua sofort Zeit und Reibung spart.
Wie sich das Zoom anfühlt
An diesem Ansatz gefällt mir, dass er genau dort hilft, wo normale Vollbildaufnahmen oft schwach werden. Eine feste Bildschirmaufnahme kann technisch gestochen scharf und trotzdem anstrengend anzusehen sein. Kleine Buttons gehen leicht unter, Cursorbewegungen verschwinden und dichte Interfaces zwingen Zuschauer ständig dazu, den Fokuspunkt zu suchen. Ein gutes Zoom-Follow-Setup wirkt wie ein sehr zurückhaltender Kameraassistent: Es verschiebt den Ausschnitt in Richtung der aktuellen Aktion, ohne dass später viel manuell geschnitten werden muss.
Enttäuschung entsteht meist nicht durch die Idee selbst, sondern durch falsches Tuning. Ist das Zoom zu aggressiv oder setzt die Verfolgung zu früh ein, wirkt es schnell so, als würde der Cursor den gesamten Bildausschnitt hinter sich herziehen. Deshalb sehe ich das nicht als Werkzeug für einen dramatischen Effekt. Es funktioniert am besten, wenn es unauffällig bleibt. Zuschauer sollen sich geführt und nicht durchgeschüttelt fühlen.
Python-Version installieren
Wer bei der älteren Python-Version bleibt, nutzt weiterhin den üblichen OBS-Scripting-Weg. Zuerst werden die Requirements in genau der Python-Umgebung installiert, die später OBS zur Verfügung gestellt wird:
python -m pip install -r requirements.txt
oder:
python3 -m pip install -r requirements.txt
Danach geht man in OBS auf Tools -> Scripts, weist OBS dieselbe Python-Umgebung zu, lädt zoom_and_follow_mouse.py und wählt die Quelle, die gezoomt werden soll. Der häufigste Fehler liegt hier nicht im Befehl. Die Abhängigkeiten werden in einem Interpreter installiert, während OBS auf einen anderen zeigt. Auf dem Papier sieht alles korrekt aus, das Skript scheitert aber trotzdem, weil beide Umgebungen nicht übereinstimmen.
So ungefähr sieht das Script-Panel nach dem Laden aus. Die wichtigen Regler – Zoom-Stärke, Bewegungsgeschwindigkeit und Follow-Grenze – befinden sich alle hier:

Tuning: Hotkeys, Parameter und typische Stolperfallen
Wer heute neu startet, sollte trotzdem zuerst die Lua-Version ausprobieren. Sie fühlt sich mehr nach „installieren, einstellen, aufnehmen“ an und weniger nach „erst eine Scripting-Umgebung vorbereiten, bevor ich überhaupt beurteilen kann, ob der Workflow zu mir passt“. Für Creator, die regelmäßig veröffentlichen, macht dieser Unterschied mehr aus, als man zunächst denkt.
Die eigentliche Zeit geht ohnehin nicht für die Installation drauf, sondern für die Entscheidung, wie sich das Zoom verhalten soll. In OBS liegen die wichtigsten Controls normalerweise unter Settings -> Hotkeys. Mindestens würde ich einen Hotkey zum Ein- und Ausschalten des Zooms und einen zweiten zum Aktivieren oder Deaktivieren des Follow-Modus vergeben. Beide sollten bequem erreichbar sein. Wenn man gleichzeitig erklärt, Software bedient und den Sprechrhythmus halten möchte, werden unbequeme Tastenkombinationen sofort zur Reibung.
Die Einstellungen, die das Ergebnis wirklich prägen, sehen typischerweise ungefähr so aus:
Zoom Factor wie stark der Bildausschnitt vergrößert wird
Zoom Speed wie schnell die Zoom-Animation läuft
Follow Speed wie schnell der Ausschnitt dem Cursor folgt
Follow Border wie nah der Cursor an den Rand kommen muss, bevor Tracking beginnt
Lock Sensitivity wie leicht der Ausschnitt zur Ruhe kommt und stehen bleibt
Ich beginne lieber konservativ. Genug zoomen, damit Zuschauer das Wichtige lesen können, aber nicht so stark, dass der Zusammenhang mit der gesamten Oberfläche verloren geht. Die Follow-Geschwindigkeit moderat halten, damit der Ausschnitt gleitet statt springt. Den Follow-Rand eher eng setzen, damit die Ansicht ruhig bleibt, bis der Cursor den aktuellen Arbeitsbereich wirklich verlässt. Am angenehmsten wirkt nicht „der Ausschnitt verfolgt mich ständig“, sondern „der Ausschnitt weiß, wann er stehen bleiben und wann er helfen soll“.
Die Vorschau unten zeigt den Nutzen gut. Es geht nicht um auffällige Bewegung, sondern darum, den aktiven Bereich während der Aufnahme lesbar zu halten:

Ein weiterer häufiger Stolperstein ist die Quelle selbst. Mit Display Capture ist das Leben meist einfacher, weil das Skript Position und Abmessungen der Quelle zuverlässiger erfassen kann. Wer dagegen ein beschnittenes Fenster, eine duplizierte Quelle oder ein Element zoomt, das innerhalb der Szene bereits skaliert und verschoben wurde, kann erleben, dass Cursorposition und Zoom-Bereich auseinanderdriften. Dann wirkt es, als sei das Skript kaputt, obwohl eigentlich nur die Quellgeometrie nicht mehr geradlinig ist.
Deshalb funktioniert dieses Setup meiner Meinung nach besonders gut für praktische Desktop-Tutorials: Software-Walkthroughs, Admin-Demos, Content-Creation-Tutorials, Coding-Videos und alles, bei dem eine normale Desktop-Aufnahme die zentrale visuelle Ebene bildet. Man kann es darüber hinaus nutzen, aber mit komplexeren Scene Graphs hört es auf, mühelos zu sein.
Ein Detail aus den älteren Notizen ist weiterhin nützlich: Wer für mehrere Quellen getrenntes Zoom-Verhalten braucht, fährt oft am stabilsten damit, die Skriptdatei zu duplizieren und umzubenennen und jede Kopie einer eigenen Quelle und einem eigenen Hotkey-Set zuzuweisen. Theoretisch elegant ist das nicht, praktisch aber sehr brauchbar – und bei Content-Workflows ist genau das häufig der bessere Trade-off.
Mein Fazit ist deshalb einfach. Die Idee ist gut und für Tutorial-Creator nützlicher, als sie zunächst aussieht. Wer heute neu einsteigt, sollte zuerst die Lua-Version testen. Wer bereits ein Python-Setup besitzt, sollte vor einer Migration prüfen, ob OBS wirklich auf den richtigen Interpreter zeigt, die richtige Quelle ausgewählt ist und die Hotkeys bequem erreichbar sind. Vor allem sollten drei Dinge stimmen: Zuschauer erkennen den wichtigen Bereich des Bildschirms, der Bildausschnitt wirkt nicht nervös und das Setup erzeugt nicht noch zusätzliche Schnittarbeit, nur damit das Tutorial lesbar bleibt.