Application for real-time video processing/transforming/composing, providing simple, language-agnostic API for live video rendering.
VideoCompositor targets real-time use cases, like video conferencing, live-streaming, or broadcasting (e.g. with WebRTC / HLS / RTMP).
VideoCompositor receives inputs and sends outputs streams via RTP. HTTP API is used to define how inputs should be transformed and combined to produce desired outputs.
For the initial release, we want VideoCompositor to support those four types of transformations, that you can combine together:
- Common transformations - frequently used, already implemented transformations, like layouts, grids, cropping, corners rounding, blending, fading, etc.
- Custom shader transformations - registering and using custom shaders, allowing to adapt VideoCompositor for specific business needs
- Web Rendering - embedding videos in custom websites
- Text Rendering
Currently, the project is under development and API is unstable.
Examples source code is under the examples
directory.
Running examples requires:
For better performance, build examples with the release compilation profile:
cargo run --release --example <example_name>
You can also check out RTC.ON 2023 workshops repo for more examples / exercises.
Linux and MacOS.
Copyright 2023, Software Mansion