View Source Membrane Video Compositor Plugin

Hex.pm API Docs CircleCI

Membrane SDK for VideoCompositor, that takes multiple input streams, transforms them according to provided transformations and composes them into output streams / videos.

It is part of Membrane Multimedia Framework.

Installation

The package can be installed by adding membrane_video_compositor_plugin to your list of dependencies in mix.exs:

def deps do
  [
    {:membrane_video_compositor_plugin, "~> 0.8.0"}
  ]
end

VideoCompositor requires having locally installed:

  • FFmpeg 6.0 - for streaming inputs / outputs to VideoCompositor
  • wget - for downloading VideoCompositor binary file
  • tar - for decompressing VideoCompositor binary file

Examples

Examples can be found in examples directory.

To run example run:

  1. cd examples
  2. mix deps.get
  3. mix run lib/[example_name].exs

Layout with shader example

The example presents dynamically added video arranged onto a tiled layout and "twisted" with the simple shader. Shaders can be used to create custom visual effects.

Transition example

The example presents dynamic transition of input videos. Transitions are used for smooth, dynamical animations.

Dynamic outputs example

The example presents dynamic outputs linking. Multiple outputs are useful for live-streaming for multiple platforms (e.g. different layout for mobile devices), target resolutions or any other case, when user want to process input videos differently.