On this page:
Overscan
7.0

Overscan

Overscan is a live coding environment for live streaming video.

Follow Overscan on Twitter @overscan_lang.

For examples of other live coding environments, see Sonic Pi or Extempore.

The overscan DSL can be used to quickly produce a video stream from a number of video and audio sources, send that stream to a video sink (e.g. Twitch), and manipulate that stream on-the-fly.

To see Overscan in action, watch this video from !!con 2018 where I demo the live-streaming capabilities. The code powering that broadcast is available online. Overscan’s logo is itself generated with Overscan.

 #lang overscan package: overscan

The Overscan collection is built on top of two additional collections provided by this package: gstreamer, a library and interface to the GStreamer multimedia framework, and ffi/unsafe/introspection, a module for creating a Foreign Function Interface built on GObject Introspection bindings.

    1 Getting Started

      1.1 Installation

      1.2 Basic Usage

    2 Broadcasting

      2.1 Twitch

      2.2 macOS

      2.3 Drawing

    3 GStreamer

      3.1 Using GStreamer

      3.2 element%

        3.2.1 element-factory%

        3.2.2 Events

        3.2.3 Contexts

      3.3 bin%

        3.3.1 pipeline%

      3.4 bus%

        3.4.1 Messages

      3.5 pad%

        3.5.1 ghost-pad%

        3.5.2 Pad Templates

      3.6 clock%

      3.7 device%

        3.7.1 device-monitor%

      3.8 Capabilities

      3.9 Buffers

        3.9.1 Memory

        3.9.2 Samples

      3.10 Common Elements

        3.10.1 Source Elements

          3.10.1.1 videotestsrc

          3.10.1.2 audiotestsrc

        3.10.2 Filter-like Elements

          3.10.2.1 capsfilter

          3.10.2.2 videomixer

          3.10.2.3 tee

          3.10.2.4 videoscale

          3.10.2.5 videobox

        3.10.3 Sink Elements

          3.10.3.1 rtmpsink

          3.10.3.2 filesink

          3.10.3.3 appsink%

      3.11 Base Support

    4 GObject Introspection

      4.1 Basic Usage

      4.2 GIRepository

      4.3 GIBaseInfo

      4.4 GObjects