Settings
Membrane packages
If you see any out-of-date information or an invalid link here, feel free to create an issue or open a PR in the guide repository
To improve modularity, Membrane is split into multiple packages. Here we gathered all of the official ones and keep adding third-party ones too, so if you created a Membrane plugin or other Membrane-based library, let us know!
We use the following [tags] in package descriptions:
[In progress] - in active development, but not yet ready [Experimental] - possible to use, but may lack some core features/tests/documentation [Alpha] - ready to use, but may lack some features or need more testing [Third-party] - maintained by the community [Suspended] - not ready and development was suspended Check the Membrane GitHub organization to see which packages are actively developed currently.
The official Membrane demos reside in the membrane demo repository. Check there for details.
The Membrane docker (Docker Hub , GitHub ) contains Erlang, Elixir and libraries necessary to test and run the Membrane Framework.
Package Description Links membrane_core
The core of the framework membrane_common_c
Utilities for the native parts of Membrane membrane_telemetry_metrics
Tool for generating metrics membrane_opentelemetry
Wrapper of OpenTelemetry functions for Membrane Multimedia Framework bundlex
Tool for compiling C/C++ code within Mix projects unifex
Tool automatically generating NIF and CNode interfaces between C/C++ and Elixir bunch
Extension of Elixir standard library sebex
The ultimate assistant in Membrane Framework releasing & development Beamchmark
Tool for measuring BEAM performance
Membrane plugins are packages which provide the elements and bins that can be used in pipelines built with the Membrane Framework. These plugins can provide various multimedia processing capabilities and help in dealing with various formats,
codecs, protocols, containers and external APIs.
Package Description Links membrane_file_plugin
Plugin for reading and writing to files membrane_udp_plugin
Plugin for sending and receiving UDP streams membrane_hackney_plugin
HTTP sink and source based on Hackney library membrane_scissors_plugin
Element for cutting off parts of the stream membrane_tee_plugin
Plugin for splitting data from a single input to multiple outputs membrane_funnel_plugin
Plugin for merging multiple input streams into a single output membrane_realtimer_plugin
Membrane element limiting playback speed to realtime, according to buffers' timestamps membrane_stream_plugin
Plugin for dumping and restoring a Membrane Stream to and from a binary format membrane_fake_plugin
Plugin with fake sink elements that consume & drop incoming data membrane_pcap_plugin
[Experimental] Plugin for reading files in pcap format membrane_live_framerate_converter_plugin
[Third-Party] [Experimental] Plugin for producing a stable output framerate membrane_node_proxy
[Third-Party] [Experimental] Plugin providing a mechanism for starting and connecting sources and sinks that span Erlang nodes
Package Description Links membrane_rtp_plugin
Membrane bins and elements for handling RTP and RTCP streams membrane_rtp_h264_plugin
RTP payloader and depayloader for H264 membrane_rtp_vp8_plugin
RTP payloader and depayloader for VP8 membrane_rtp_vp9_plugin
RTP payloader and depayloader for VP9 membrane_rtp_mpegaudio_plugin
RTP MPEG Audio depayloader membrane_rtp_opus_plugin
RTP payloader and depayloader for OPUS audio membrane_rtmp_plugin
Plugin for receiving, demuxing, parsing and streaming RTMP streams. Includes TCP server for handling connections membrane_mpegts_plugin
MPEG-TS demuxer membrane_mp4_plugin
Utilities for MP4 container parsing and serialization and elements for muxing the stream to CMAF membrane_http_adaptive_stream_plugin
Plugin generating manifests for HLS (DASH support planned) membrane_matroska_plugin
Plugin for muxing audio and video streams to Matroska container and demuxing matroska stream to audio and video membrane_flv_plugin
Plugin for muxing audio and video streams to FLV format and demuxing FLV stream to audio and video membrane_ivf_plugin
Plugin for serializing and deserializng Indeo Video Format stream membrane_ogg_plugin
[Experimental] Ogg demuxer and parser membrane_quic_plugin
[Experimental] Plugin containing elements for sending and receiving data over QUIC. It contains also QUIC server membrane_hls_plugin
[Third-Party] [Alpha] Membrane.HLS.Source element for HTTP Live Streaming (HLS) playlist files membrane_ogg_plugin
[Third-Party] [Alpha] Ogg plugin based on the libogg
Package Description Links membrane_aac_plugin
AAC parser and complementary elements for AAC codec membrane_aac_fdk_plugin
AAC decoder and encoder based on FDK library membrane_flac_plugin
Parser for files in FLAC bitstream format membrane_mp3_lame_plugin
Membrane MP3 encoder based on Lame membrane_mp3_mad_plugin
Membrane MP3 decoder based on MAD membrane_element_mpegaudioparse
Element capable of parsing bytestream into MPEG audio frames membrane_opus_plugin
Opus encoder, decoder and parser membrane_wav_plugin
WAV parser
Package Description Links membrane_h264_ffmpeg_plugin
Membrane H264 parser, decoder and encoder based on FFmpeg and x264 membrane_h264_plugin
Pure Elixir Membrane H264 parser turbojpeg
[Third-party] libjpeg-turbo bindings for Elixir by Binary Noggin membrane_subtitle_mixer_plugin
[Third-party] [Alpha] Plugin that uses CEA708 to merge subtitles directly in H264 packets membrane_mpeg_ts_plugin
[Third-party] [Alpha] MPEG-TS Demuxer
Package Description Links membrane_generator_plugin
Video and audio samples generator
Raw audio Package Description Links membrane_portaudio_plugin
Raw audio retriever and player based on PortAudio membrane_ffmpeg_swresample_plugin
Plugin performing audio conversion, resampling and channel mixing, using SWResample module of FFmpeg library membrane_audiometer_plugin
Elements for measuring the level of the audio stream membrane_audio_mix_plugin
Elements for mixing audio streams membrane_element_fade
[Experimental]
Raw video Package Description Links membrane_sdl_plugin
Membrane video player based on SDL membrane_raw_video_parser_plugin
Plugin for parsing raw video streams membrane_ffmpeg_swscale_plugin
Plugin for scaling raw video streams and converting raw video format membrane_framerate_converter_plugin
Plugin for adjusting the framerate of raw video stream membrane_video_merger_plugin
Plugin for cutting and merging raw video streams membrane_camera_capture_plugin
This plugin can be used to capture video stream from an input device membrane_ffmpeg_video_filter_plugin
This plugin contains elements providing video filters based on ffmpeg video filter feature membrane_video_compositor_plugin
[Alpha] WGPU based plugin for composing, transforming and editing multiple raw videos in real time membrane_video_mixer_plugin
[Experimental] [Third-Party] Element which mixes multiple video inputs to a single output using ffmpeg filters
Package Description Links membrane_element_gcloud_speech_to_text
Plugin providing speech recognition via Google Cloud Speech-to-Text API membrane_element_ibm_speech_to_text
Plugin providing speech recognition via IBM Cloud Speech-to-Text service membrane_s3_plugin
[Third-Party] Plugin providing sink that writes to Amazon S3 membrane_transcription
[Third-Party] [Experimental] Plugin based on Whisper allowing creating transcriptions xturn_membrane
[Third-Party] [Experimental] Experimental Membrane source / sink for XTurn
Package Description Links membrane_raw_audio_format
Raw audio format definition membrane_raw_video_format
Raw video format definition membrane_aac_format
Advanced Audio Codec format definition membrane_mp4_format
MPEG-4 container format definition membrane_opus_format
Opus audio format definition membrane_rtp_format
Real-time Transport Protocol format definition membrane_mpegaudio_format
MPEG audio format definition membrane_h264_format
H264 video format definition membrane_cmaf_format
CMAF definition membrane_matroska_format
Matroska format definition membrane_vp8_format
VP8 Format Description membrane_vp9_format
VP9 Format Description
Package Description Links ex_sdp
Parser and serializer for Session Description Protocol ex_libnice
Libnice-based Interactive Connectivity Establishment (ICE) protocol support for Elixir ex_libsrtp
Elixir bindings for libsrtp ex_dtls
DTLS and DTLS-SRTP handshake library for Elixir, based on OpenSSL membrane_rtsp
RTSP client for Elixir membrane_common_audiomix
[Experimental] membrane_telemetry_dashboard
Introduction to integrating membrane_timescaledb_reporter
repository with membrane_dashboard
to monitor your pipeline behaviour membrane_webrtc_server
Signalling server for WebRTC
Jellyfish is a GitHub organization containing Membrane WebRTC-related repositories, focusing on creating a standalone media server.
Package Description Links membrane_rtc_engine
RTC Engine and its client library membrane_webrtc_plugin
[Alpha] Plugin for sending and receiving media with WebRTC membrane_ice_plugin
Plugin for ICE protocol
Package Description Links fake_turn
STUN and TURN library for Erlang / Elixir membrane_rtc_engine_timescaledb
Functions which allow storing Membrane.RTC.Engine
metrics reports in a database jellyfish
[In progress] Standalone media server
Package Description Links membrane-webrtc-js
JS/TS client library for Membrane RTC Engine membrane-webrtc-ios
Membrane WebRTC client compatible with Membrane RTC Engine membrane-webrtc-android
Membrane WebRTC client compatible with Membrane RTC Engine react-native-membrane-webrtc
React Native wrapper for membrane-webrtc-ios
and membrane-webrtc-android
Package Description Links Jellybook
Theoretical concepts behind general purpose media server.
Package Description Links membrane_videoroom
Video conferencing platform using WebRTC membrane_live
[Alpha] Webinar app in React, Phoenix and Membrane
Package Description Links membrane_tutorials
Repository with tutorials text membrane_basic_pipeline_tutorial
Code used in the comprehensive basic pipeline tutorial membrane_videoroom_tutorial
Code used in the videroom tutorial membrane_webrtc_tutorial
Code used in the webrtc tutorial
Package Description Links membrane_libnice_plugin
Replaced by membrane_ice_plugin
membrane_element_httpoison
Replaced by membrane_element_hackney
membrane_dtls_plugin
DTLS and DTLS-SRTP handshake implementation for Membrane ICE plugin membrane_loggers
Replaced by the Membrane.Logger
in Membrane Core membrane_caps_audio_flac
[Suspended] FLAC audio format definition membrane_remote_stream_format
Content of this package has been moved to membrane_core
membrane_element_rtp_jitter_buffer
Package has become part of membrane_rtp_plugin
membrane_bin_rtp
Package has become part of membrane_rtp_plugin
membrane_element_icecast
[Experimental] Element capable of sending a stream into Icecast streaming server membrane_element_live_audiomixer
Simple mixer that combines audio from different sources membrane_element_msdk_h264
[Experimental] Hardware-accelerated H.264 encoder based on IntelMediaSDK membrane_rtp_aac_plugin
[Alpha] RTP AAC depayloader membrane_element_flac_encoder
[Suspended] membrane_protocol_icecast
[Suspended] membrane_server_icecast
[Suspended]