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
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


Media agnostic

membrane_file_pluginPlugin for reading and writing to Docs GitHub
membrane_element_udpPlugin for sending and receiving UDP Docs ![GitHub](
membrane_hackney_pluginHTTP sink and source based on Hackney Docs GitHub
membrane_element_fakeFake Membrane sinks that drop incoming Docs GitHub
membrane_scissors_pluginElement for cutting off parts of the Docs GitHub
membrane_element_teePlugin 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

Media network protocols & containers

membrane_rtp_pluginMembrane bins and elements for handling RTP and RTCP Docs GitHub
membrane_rtp_aac_plugin[Alpha] RTP AAC Docs GitHub
membrane_rtp_h264_pluginRTP payloader and depayloader for Docs GitHub
membrane_rtp_mpegaudio_pluginRTP MPEG Audio Docs GitHub
membrane_rtp_opus_pluginRTP payloader and depayloader for OPUS 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_ice_pluginPlugin for ICE Docs GitHub
membrane_dtls_pluginDTLS and DTLS-SRTP handshake implementation for Membrane ICE Docs GitHub
membrane_element_icecast[Experimental] Element capable of sending a stream into Icecast streaming serverGitHub

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_element_flac_parserParser 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 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
turbojpeg[Third-party] libjpeg-turbo bindings for Elixir by Binary Docs GitHub
membrane_element_msdk_h264[Experimental] Hardware-accelerated H.264 encoder based on IntelMediaSDKGitHub

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_mixer_pluginElements for mixing audio Docs GitHub

Raw video

membrane_sdl_pluginMembrane video player based on Docs GitHub
membrane_element_rawvideo_parserPlugin for parsing raw video Docs GitHub
membrane_ffmpeg_swscale_pluginPlugin for scaling raw video Docs GitHub
membrane_video_merger_pluginPlugin for cutting and merging raw video Docs 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_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_caps_audio_flacFLAC audio format Docs GitHub
membrane_caps_audio_mpegMPEG audio format Docs GitHub
membrane_caps_audio_rawRaw audio format Docs GitHub
membrane_caps_video_h264H264 video format Docs GitHub
membrane_caps_video_rawRaw video format Docs GitHub

Apps, protocols & plugins' utilities

membrane_webrtc_serverSignaling server for Docs GitHub
ex_sdpParser and serializer for Session Description Docs GitHub
ex_libniceLibnice-based Interactive Connectivity Establishment (ICE) protocol support for Docs GitHub
ex_dtlsDTLS and DTLS-SRTP handshake library for Elixir, based on Docs GitHub
membrane_rtspRTSP client for ElixirGitHub


membrane_bin_rtpMoved to Docs GitHub
membrane_element_rtpMoved to Docs GitHub
membrane_element_rtp_jitter_bufferMoved to membrane_rtp_pluginGitHub
membrane_element_httpoisonUse membrane_hackney_plugin Docs GitHub
membrane_element_fileMoved to Docs GitHub
membrane_element_hackneyMoved to Docs GitHub
membrane_element_sdlMoved to Docs GitHub