membrane_core is the foundation of the Membrane multimedia framework for Elixir, providing the abstractions and runtime needed to build real-time audio and video pipelines. It models media processing as a graph of lightweight, supervised OTP processes—elements connected by links—so work is isolated, fault-tolerant, and easy to scale or reconfigure at runtime. The core defines a clear lifecycle and callback API for elements, plus concepts like buffers, events, and capabilities/format negotiation to keep components interoperable and type-safe. Back-pressure, scheduling, and time synchronization are handled by the framework, enabling low-latency streaming and precise playback control without ad-hoc concurrency code. Developers compose pipelines from reusable building blocks and can dynamically add, remove, or switch elements while the system is running.
Features
- Provides core API and mechanisms for constructing media pipelines
- Enables linking of processing elements in a reliable and convenient way
- Allows dynamic plug‑in of custom processing code at pipeline stages
- Supports protocols like WebRTC, RTSP, RTMP, HLS, HTTP for media streaming
- Facilitates audio/video transcoding, container handling (MP4, MKV, etc.)
- Built in Elixir with scalability, fault-tolerance, and integration into any BEAM-based app