Der neue Automatische Szenenwechsler ist da!

Vor fast 5 Jahren haben wir den ersten automatischen Szenenwechsler für Streamlabs OBS released. Seitdem haben wir einiges an Feedback und Wünschen erhalten. Die meisten Kommentare haben sich dabei 2 Dinge gewünscht: Unterstützung für MacOS und Unterstützung für OBS Studio. Außerdem wollten wir den automatischen Szenenwechsler mit dem zeitgesteuerten Szenenwechsler kombinieren. Diesen Anregungen sind wir nachgekommen und können nun, mit extremer Verspätung, die Neuauflage unseres Szenenwechslers vorstellen.

Vorsicht: Aktuell befindet sich der Szenenwechsler noch in einem frühen Entwicklungsstadium. Es kann also unter Umständen zu Fehlverhalten kommen (gerade bei Verwendung ohne geöffnete Streamingsoftware). Der Einsatz im Produktivbetrieb sollte also nur nach vorherigen Tests der üblichen Szenarien erfolgen.

Inhalt

Die Technologie

Um die Mac-Kompatibilität zu gewährleisten, wurde der neue Szenenwechsler im .NET MAUI- Framework entwickelt. So können wir mit einer einheitlichen Codebasis sowohl die Windows als auch die Mac-App veröffentlichen. Da OBS Studio (ab Version 28) die Websocket-Erweiterung bereits an Bord hat, haben wir uns entschieden, auch für Streamlabs Desktop in Zukunft die Websocket-Verbindung zu benutzen und die „alte“ Named-Pipes Methode in Rente zu schicken. Dies erhöht minimal den Konfigurationsaufwand durch die Notwendigkeit von Verbindungsdaten, ermöglicht aber zum Beispiel auch eine geräteübergreifende Steuerung bei getrennten Spiele- und Streaming-PCs.

Die Oberfläche & Konfiguration

Beim Start begrüßt uns ein Menü aus 3 Optionen.

  • Application Switching: Unter diesem Menüpunkt kommt man zum „normalen“, regelbasierten Szenenwechsler.
  • Timer Switching: Hier befindet sich der zeitgesteuerte Szenenwechsler.
  • Settings: Im Settings-Menü verstecken sich die Konfigurationsmenüs für die Verbindung zur Streaming-Software sowie zur Konfiguration der entsprechenden Regeln und Szenen.

Die Connection-Settings

Durch die Verwendung des Websocket-Protokolls benötigt die neue App etwas mehr Angaben, um sich zur Streamingsoftware zu verbinden. Im Feld Connection type geben wir unsere Streamingsoftware an – aktuell wird hier OBS Studio und Streamlabs Desktop unterstützt. Im Feld Hostname / IP benötigen wir die IP-Adresse des PCs, auf dem die Streamingsoftware ausgeführt wird. Falls dies der gleiche Computer ist, auf dem auch der Szenenwechsler läuft, kann man auch „localhost“ eintragen. Vorsicht: Falls ihr getrennte Spiele- und Streaming-PCs habt, müsst ihr ggf. den Port für den Websocket-Server am Streamingrechner freigeben, damit der Szenenwechsler die Software auch erreichen kann. Für die richtigen Werte in Port, Authentication Enabled und Token / Password müssen wir einen Blick in die jeweiligen Einstellungen unserer Streamingsoftware werfen.

OBS Studio Websocket v5

In OBS Studio befinden sich die Websocket-Servereinstellungen in der Menüleiste unter Werkzeuge / Websocket-Servereinstellungen. Wichtig ist hier, dass der Haken bei WebSocket-Server aktivieren gesetzt ist. Mit einem Klick auf Verbindungsinformationen anzeigen zeigt OBS uns den eingestellten Port sowie das Passwort, welches wir im Feld Token / Password eintragen

OBS Studio Websocket Verbindungseinstellungen

Streamlabs Websocket

Bei Streamlabs ist die Websocket Schnittstelle im Standard bereits aktiviert. Die Zugangsdaten für die Schnittstelle finden wir in den Streamlabs Einstellungen unter Fernbedienung. Hier finden wir ebenfalls die Port- & Token-Informationen. Bei Streamlabs ist die Authentifizierung immer aktiviert, wir müssen den Haken im Szenenwechsler also auf jeden Fall setzen und das Token eintragen.

Streamlabs Fernbedienung

Mit einem Klick auf Validate & Save speichern wir die Konfiguration. Nun werden die Verbindungsdaten geprüft. Dafür muss die Streamingsoftware geöffnet bleiben. Falls die Konfiguration korrekt eingetragen wurde, erhalten wir eine Erfolgsmeldung.

Application Switcher-Settings

Im Application Settings Bereich legen wir die Regeln für den anwendungsgesteuerten Szenenwechsel fest.

Im oberen Bereich der Seite befinden sich die globalen Einstellungen. Hier gibt es nur eine Einstellung für das Intervall, wie oft der Szenenwechsler auf geänderte Anwendungen prüfen soll. Ein Wert zwischen 500 und 2000ms funktioniert in der Praxis am besten.

Im unteren Bereich befindet sich die Liste mit den angelegten Szenenregeln. Mit einem Klick auf + können wir wieder eine neue Regel anlegen, ein Klick auf – löscht die ausgewählte Regel. Mit den Pfeilen können wir die Priorisierung der Regeln ändern. Der Eintrag ganz oben wird bei laufender Anwendung als erstes geprüft, hier steht also unsere „wichtigste“ Szene. Die Default-Szene ohne Programmbezug sollte dementsprechend ganz unten stehen.

  • Scene: Die Szene in Streamlabs / OBS, die zu dieser Einstellung gehört. Um diese Einstellung korrekt zu setzen, muss die Streamingsoftware geöffnet und richtig in den Connection-Settings konfiguriert sein.
  • Process name: Der Name des Prozesses, der zu dieser Szene gehört. Falls die Einstellung Use window title gesetzt ist, müssen wir statt dem Prozessnamen den Titel des Fensters eintragen.
  • Switching delay (ms): Eine Verzögerung vor dem Wechsel zu dieser Szene (in Millisekunden). Ideal für Anwendungen, die beim Start erst nach einigen Sekunden etwas anzeigen (Liebe Grüße an den PUBG-Client!).
  • Needs focus: Bei dieser Einstellung greift die Regel nur, wenn das Fenster sich auch im Vordergrund befindet und gerade aktiv ist.
  • Use window title: Statt des Prozessnamens verwendet diese Regel den Fensternamen. Dies ist für Anwendungen relevant, deren Ausführungsprozess und Oberfläche unterschiedlich sind (Windows Taschenrechner zum Beispiel).

Die Änderungen werden zwar Live in der Regel-Liste angezeigt, allerdings erst beim Klick auf Save final gespeichert.

Timer Switcher-Settings

Im Timer Settings Bereich legen wir die Konfiguration für den zeitgesteuerten Szenenwechsel fest.

Im oberen Bereich der Timer Settings finden wir die globalen Einstellungen des Profils. Diese Einstellungen gelten szenenübergreifend für alle Szenen, die wir im Timer aktivieren.

  • Polling interval (ms): Die Standard-Anzeigedauer jeder Szene.
  • Random: Die Reihenfolge der Szenen erfolgt zufällig

Im unteren Bereich legen wir die Einstellungen für jede einzelne Szene fest. Per Klick auf + legen wir eine neue Szene an. Ein Klick auf löscht die ausgewählte Szene und wie beim Application Switcher können wir die Szenen mit den Pfeilen verschieben.

  • Scene: Die Szene in Streamlabs / OBS, die zu dieser Einstellung gehört. Um diese Einstellung korrekt zu setzen, muss die Streamingsoftware geöffnet und richtig im Szenenwechsler konfiguriert sein.
  • Duration Override (ms): Die szenenabhängige Abweichung der Dauer. Der Wert wird zum oben festgelegten Intervall addiert. Beispiel: Bei einem globalen Intervall von 3000 und einem Duration-Offset von 2000 wird die Szene 5 Sekunden dargestellt. Mit einem negativen Wert lässt sich die globale Dauer verringern.

Um die Änderungen final abzuspeichern, müssen wir auf Save klicken.

Die eigentliche Anwendung

Sowohl der Application- als auch der Timer-Switcher haben nur einen einzigen Button: Start bzw. Stop.

Mit einem Klick auf Start ist die Anwendung aktiv und zeigt uns unterhalb des Buttons auch ein kleines Protokoll der letzten Wechsel. Falls wir einmal manuell auf eine andere Szene, die nicht Teil unserer Einstellungen ist, wechseln müssen, können wir das direkt per OBS (oder ein Streamdeck etc.) erledigen. Der Switcher pausiert dann automatisch den Wechsel und setzt erst wieder fort, sobald wir wieder eine Szene auswählen, die in unserer Konfiguration hinterlegt ist.

Download

Der Quellcode des Scene Switchers ist auf Github veröffentlicht. Die aktuelle Version des Tools kann im Bereich Releases heruntergeladen werden. Falls ihr Bugs feststellt, könnt ihr diese auch direkt bei Github (oder im bald erscheinenden Youtube-Video in den Kommentaren) melden.