OBS is a popular piece of software used to stream live on Twitch or other channels. It is extensible through plugins to add video effects or data connections. OBS is well-documented and available for Windows, macOS and Linux.
At its kernel, for maximal performance, OBS is largely based on GPU-based video processing in the form of DirectX / OpenGL shaders (encapsulated in DirectX-like .effect
files).
Various stuff running under OBS can be found in this repository.
Some OBS Wiki pages were prepared on this repository before going to the official OBS repository:
-
The main Getting started with OBS scripting (OBS Wiki page) page is a general description of the capabilities of scripting, some alternatives and hints for troubleshooting.
-
The Source Shake tutorial (OBS Wiki page) shows how to build a simple script that animates a source. The script is available here in Lua and in Python.
- The Halftone Filter tutorial (OBS Wiki page) shows how to build a video filter in Lua with a halftone effect. The source files are available here, for the first part the Lua script and related effect file and for the second part the final script embedding the effect code in Lua. There is as well a development version of the script.
This "skin" OBS filter can be used to replace certain areas of a particular color in the source with a texture. It is a quick-and-dirty, very basic attempt to produce a skin replacement effect.
Some early effects were developed for StreamFX, e.g. the first attempt to reproduce Amstrad CPC pictures.