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.


Media agnostic packages

membrane_coreThe core of the Docs GitHub
membrane_common_cUtilities for the native parts of Docs GitHub
membrane_telemetry_metricsTool for generating Docs GitHub
membrane_opentelemetryWrapper of OpenTelemetry functions for Membrane Multimedia Docs GitHub
bundlexTool for compiling C/C++ code within Mix Docs GitHub
unifexTool automatically generating NIF and CNode interfaces between C/C++ and Docs GitHub
bunchExtension of Elixir standard Docs GitHub
sebexThe ultimate assistant in Membrane Framework releasing & developmentGitHub
BeamchmarkTool for measuring BEAM Docs GitHub



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.


Media agnostic

membrane_file_pluginPlugin for reading and writing to Docs GitHub
membrane_udp_pluginPlugin for sending and receiving UDP Docs ![GitHub](
membrane_hackney_pluginHTTP sink and source based on Hackney Docs GitHub
membrane_scissors_pluginElement for cutting off parts of the Docs GitHub
membrane_tee_pluginPlugin for splitting data from a single input to multiple Docs GitHub
membrane_funnel_pluginPlugin for merging multiple input streams into a single Docs GitHub
membrane_realtimer_pluginMembrane element limiting playback speed to realtime, according to buffers' Docs GitHub
membrane_stream_pluginPlugin for dumping and restoring a Membrane Stream to and from a binary Docs GitHub
membrane_fake_pluginPlugin with fake sink elements that consume & drop incoming Docs GitHub
membrane_pcap_plugin[Experimental] Plugin for reading files in pcap formatGitHub
membrane_live_framerate_converter_plugin[Third-Party] [Experimental] Plugin for producing a stable output framerateGitHub
membrane_node_proxy[Third-Party] [Experimental] Plugin providing a mechanism for starting and connecting sources and sinks that span Erlang nodesGitHub


Media network protocols & containers

membrane_rtp_pluginMembrane bins and elements for handling RTP and RTCP Docs GitHub
membrane_rtp_h264_pluginRTP payloader and depayloader for Docs GitHub
membrane_rtp_vp8_pluginRTP payloader and depayloader for Docs GitHub
membrane_rtp_vp9_pluginRTP payloader and depayloader for VP9GitHub
membrane_rtp_mpegaudio_pluginRTP MPEG Audio Docs GitHub
membrane_rtp_opus_pluginRTP payloader and depayloader for OPUS Docs GitHub
membrane_rtmp_pluginPlugin for receiving, demuxing, parsing and streaming RTMP streams. Includes TCP server for handling Docs GitHub
membrane_mpegts_pluginMPEG-TS Docs GitHub
membrane_mp4_pluginUtilities for MP4 container parsing and serialization and elements for muxing the stream to Docs GitHub
membrane_http_adaptive_stream_pluginPlugin generating manifests for HLS (DASH support planned) Docs GitHub
membrane_matroska_pluginPlugin for muxing audio and video streams to Matroska container and demuxing matroska stream to audio and Docs GitHub
membrane_flv_pluginPlugin for muxing audio and video streams to FLV format and demuxing FLV stream to audio and Docs GitHub
membrane_ivf_pluginPlugin for serializing and deserializng Indeo Video Format Docs GitHub
membrane_ogg_plugin[Experimental] Ogg demuxer and parserGitHub
membrane_quic_plugin[Experimental] Plugin containing elements for sending and receiving data over QUIC. It contains also QUIC serverGitHub
membrane_hls_plugin[Third-Party] [Alpha] Membrane.HLS.Source element for HTTP Live Streaming (HLS) playlist filesGitHub
membrane_ogg_plugin[Third-Party] [Alpha] Ogg plugin based on the liboggGitHub


Audio codecs

membrane_aac_pluginAAC parser and complementary elements for AAC Docs GitHub
membrane_aac_fdk_pluginAAC decoder and encoder based on FDK Docs GitHub
membrane_flac_pluginParser for files in FLAC bitstream Docs GitHub
membrane_mp3_lame_pluginMembrane MP3 encoder based on Docs GitHub
membrane_mp3_mad_pluginMembrane MP3 decoder based on Docs GitHub
membrane_element_mpegaudioparseElement capable of parsing bytestream into MPEG audio Docs GitHub
membrane_opus_pluginOpus encoder, decoder and Docs GitHub
membrane_wav_pluginWAV Docs GitHub


Video codecs

membrane_h264_ffmpeg_pluginMembrane H264 parser, decoder and encoder based on FFmpeg and Docs GitHub
membrane_h264_pluginPure Elixir Membrane H264 Docs GitHub
turbojpeg[Third-party] libjpeg-turbo bindings for Elixir by Binary Docs GitHub
membrane_subtitle_mixer_plugin[Third-party] [Alpha] Plugin that uses CEA708 to merge subtitles directly in H264 packetsGitHub
membrane_mpeg_ts_plugin[Third-party] [Alpha] MPEG-TS DemuxerGitHub



membrane_generator_pluginVideo and audio samples Docs GitHub

Raw audio

membrane_portaudio_pluginRaw audio retriever and player based on Docs GitHub
membrane_ffmpeg_swresample_pluginPlugin performing audio conversion, resampling and channel mixing, using SWResample module of FFmpeg Docs GitHub
membrane_audiometer_pluginElements for measuring the level of the audio Docs GitHub
membrane_audio_mix_pluginElements for mixing audio Docs GitHub

Raw video

membrane_sdl_pluginMembrane video player based on Docs GitHub
membrane_raw_video_parser_pluginPlugin for parsing raw video Docs GitHub
membrane_ffmpeg_swscale_pluginPlugin for scaling raw video streams and converting raw video Docs GitHub
membrane_framerate_converter_pluginPlugin for adjusting the framerate of raw video Docs GitHub
membrane_video_merger_pluginPlugin for cutting and merging raw video Docs GitHub
membrane_camera_capture_pluginThis plugin can be used to capture video stream from an input Docs GitHub
membrane_ffmpeg_video_filter_pluginThis plugin contains elements providing video filters based on ffmpeg video filter Docs GitHub
membrane_video_compositor_plugin[Alpha] WGPU based plugin for composing, transforming and editing multiple raw videos in real timeGitHub
membrane_video_mixer_plugin[Experimental] [Third-Party] Element which mixes multiple video inputs to a single output using ffmpeg GitHub


External APIs

membrane_element_gcloud_speech_to_textPlugin providing speech recognition via Google Cloud Speech-to-Text Docs GitHub
membrane_element_ibm_speech_to_textPlugin providing speech recognition via IBM Cloud Speech-to-Text Docs GitHub
membrane_s3_plugin[Third-Party] Plugin providing sink that writes to Amazon Docs GitHub
membrane_transcription[Third-Party] [Experimental] Plugin based on Whisper allowing creating transcriptionsGitHub
xturn_membrane[Third-Party] [Experimental] Experimental Membrane source / sink for XTurnGitHub



membrane_raw_audio_formatRaw audio format Docs GitHub
membrane_raw_video_formatRaw video format Docs GitHub
membrane_aac_formatAdvanced Audio Codec format Docs GitHub
membrane_mp4_formatMPEG-4 container format Docs GitHub
membrane_opus_formatOpus audio format Docs GitHub
membrane_rtp_formatReal-time Transport Protocol format Docs GitHub
membrane_mpegaudio_formatMPEG audio format Docs GitHub
membrane_h264_formatH264 video format Docs GitHub
membrane_cmaf_formatCMAF Docs GitHub
membrane_matroska_formatMatroska format Docs GitHub
membrane_vp8_formatVP8 Format Docs GitHub
membrane_vp9_formatVP9 Format Docs GitHub


Apps, protocols & plugins' utilities

ex_sdpParser and serializer for Session Description Docs GitHub
ex_libniceLibnice-based Interactive Connectivity Establishment (ICE) protocol support for Docs GitHub
ex_libsrtpElixir bindings for Docs GitHub
ex_dtlsDTLS and DTLS-SRTP handshake library for Elixir, based on Docs GitHub
membrane_rtspRTSP client for API Docs GitHub
membrane_telemetry_dashboardIntroduction to integrating membrane_timescaledb_reporter repository with membrane_dashboard to monitor your pipeline behaviourGitHub
membrane_webrtc_serverSignalling server for Docs GitHub



Jellyfish is a GitHub organization containing Membrane WebRTC-related repositories, focusing on creating a standalone media server.



membrane_rtc_engineRTC Engine and its client Docs GitHub
membrane_webrtc_plugin[Alpha] Plugin for sending and receiving media with Docs GitHub
membrane_ice_pluginPlugin for ICE Docs GitHub



fake_turnSTUN and TURN library for Erlang / ElixirGitHub
membrane_rtc_engine_timescaledbFunctions which allow storing Membrane.RTC.Engine metrics reports in a Docs GitHub
jellyfish[In progress] Standalone media serverGitHub


RTC Engine clients

membrane-webrtc-jsJS/TS client library for Membrane RTC EngineNPM version GitHub
membrane-webrtc-iosMembrane WebRTC client compatible with Membrane RTC EngineGitHub
membrane-webrtc-androidMembrane WebRTC client compatible with Membrane RTC EngineGitHub
react-native-membrane-webrtcReact Native wrapper for membrane-webrtc-ios and membrane-webrtc-androidNPM version GitHub



JellybookTheoretical concepts behind general purpose media server.GitHub


RTC Engine based applications

membrane_videoroomVideo conferencing platform using WebRTCGitHub
membrane_live[Alpha] Webinar app in React, Phoenix and MembraneGitHub



membrane_tutorialsRepository with tutorials textGitHub
membrane_basic_pipeline_tutorialCode used in the comprehensive basic pipeline tutorialGitHub
membrane_videoroom_tutorialCode used in the videroom tutorialGitHub
membrane_webrtc_tutorialCode used in the webrtc tutorialGitHub


No longer mantained

membrane_libnice_pluginReplaced by Docs GitHub
membrane_element_httpoisonReplaced by Docs GitHub
membrane_dtls_pluginDTLS and DTLS-SRTP handshake implementation for Membrane ICE Docs GitHub
membrane_loggersReplaced by the Membrane.Logger in Membrane Docs GitHub
membrane_caps_audio_flac[Suspended] FLAC audio format Docs GitHub
membrane_remote_stream_formatContent of this package has been moved to Docs
membrane_element_rtp_jitter_bufferPackage has become part of Docs
membrane_bin_rtpPackage has become part of Docs
membrane_element_icecast[Experimental] Element capable of sending a stream into Icecast streaming serverGitHub
membrane_element_live_audiomixerSimple mixer that combines audio from different sourcesGitHub
membrane_element_msdk_h264[Experimental] Hardware-accelerated H.264 encoder based on IntelMediaSDKGitHub
membrane_rtp_aac_plugin[Alpha] RTP AAC Docs GitHub