Skip to content
James Kao edited this page Dec 6, 2020 · 8 revisions

Introduction

obs-midi-ui controls an OBS Studio via the obs-websocket plugin specifically for the purpose of operating a multi-stream festival where potentially large numbers of performers will be connecting to a custom RTMP server and the OBS Studio being controlled will mux and sequence the streams from the custom RTMP server to a single public streaming endpoint.

Installation

Download the relevant Electron package from the releases page

Visit the online SPA in your browser.

Usage Notes

The Connection Address field accepts addresses in the following formats:

  • <IP Address | Host name> defaults to plain websocket to port 80
  • <IP Address | Host name>:<port> defaults to plain websocket to the designated port
  • ws://<IP Address | Host name> defaults to port 80 plain websocket connection
  • wss://<IP Address | Host name> defaults to port 443 secure websocket connection
  • ws://<IP Address | Host name>:<port> fully specified plain websocket connection
  • wss://<IP Address | Host name>:<port fully specified secure websocket connection

Considerations between Electron and SPA versions

  • obs-websocket is an unencrypted ws:// endpoint. Due to browser security constraints, the SPA version can only connect to localhost ports if served from HTTPS. Attempting to connect directly to a remote OBS Studio address will fail. The Electron app version has no such constraint.

    • This presents a challenge if you wish to run this application on a tablet device since you would have to use the SPA version and the OBS Studio would always be remote. One possible workaround is to use a service such as ngrok or localtunnel to expose your websocket as a public HTTPS endpoint.
  • WebMIDI has some peculiar internal behavior where on some platforms and some conditions, it will attempt to grab control of all available MIDI devices on a device when initialized, and will not release them until the application is quit. This is innocuous for platforms and MIDI device drivers which permit multiple simultaneous connections, however the default Windows class MIDI device only permits a single connection to be open to a device at once. As a result, it may not be possible to release device connections without quitting the application. In the case of the Electron app, this is fairly straightforward - just quit the app. In the case of SPA, this requires quitting your whole browser and may be an annoyance if you have many other unrelated pages open.