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_coreThe core of the framework membrane_common_cUtilities for the native parts of Membrane membrane_telemetry_metricsTool for generating metrics membrane_opentelemetryWrapper of OpenTelemetry functions for Membrane Multimedia Framework bundlexTool for compiling C/C++ code within Mix projects unifexTool automatically generating NIF and CNode interfaces between C/C++ and Elixir bunchExtension of Elixir standard library sebexThe ultimate assistant in Membrane Framework releasing & development BeamchmarkTool 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_pluginPlugin for reading and writing to files membrane_udp_pluginPlugin for sending and receiving UDP streams membrane_hackney_pluginHTTP sink and source based on Hackney library membrane_scissors_pluginElement for cutting off parts of the stream membrane_tee_pluginPlugin for splitting data from a single input to multiple outputs membrane_funnel_pluginPlugin for merging multiple input streams into a single output membrane_realtimer_pluginMembrane element limiting playback speed to realtime, according to buffers' timestamps membrane_stream_pluginPlugin for dumping and restoring a Membrane Stream to and from a binary format membrane_fake_pluginPlugin 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_pluginMembrane bins and elements for handling RTP and RTCP streams membrane_rtp_h264_pluginRTP payloader and depayloader for H264 membrane_rtp_vp8_pluginRTP payloader and depayloader for VP8 membrane_rtp_vp9_pluginRTP payloader and depayloader for VP9 membrane_rtp_mpegaudio_pluginRTP MPEG Audio depayloader membrane_rtp_opus_pluginRTP payloader and depayloader for OPUS audio membrane_rtmp_pluginPlugin for receiving, demuxing, parsing and streaming RTMP streams. Includes TCP server for handling connections membrane_mpegts_pluginMPEG-TS demuxer membrane_mp4_pluginUtilities for MP4 container parsing and serialization and elements for muxing the stream to CMAF membrane_http_adaptive_stream_pluginPlugin generating manifests for HLS (DASH support planned) membrane_matroska_pluginPlugin for muxing audio and video streams to Matroska container and demuxing matroska stream to audio and video membrane_flv_pluginPlugin for muxing audio and video streams to FLV format and demuxing FLV stream to audio and video membrane_ivf_pluginPlugin 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_pluginAAC parser and complementary elements for AAC codec membrane_aac_fdk_pluginAAC decoder and encoder based on FDK library membrane_flac_pluginParser for files in FLAC bitstream format membrane_mp3_lame_pluginMembrane MP3 encoder based on Lame membrane_mp3_mad_pluginMembrane MP3 decoder based on MAD membrane_element_mpegaudioparseElement capable of parsing bytestream into MPEG audio frames membrane_opus_pluginOpus encoder, decoder and parser membrane_wav_pluginWAV parser
Package Description Links membrane_h264_ffmpeg_pluginMembrane H264 parser, decoder and encoder based on FFmpeg and x264 membrane_h264_pluginPure 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_pluginVideo and audio samples generator
Raw audio Package Description Links membrane_portaudio_pluginRaw audio retriever and player based on PortAudio membrane_ffmpeg_swresample_pluginPlugin performing audio conversion, resampling and channel mixing, using SWResample module of FFmpeg library membrane_audiometer_pluginElements for measuring the level of the audio stream membrane_audio_mix_pluginElements for mixing audio streams membrane_element_fade[Experimental]
Raw video Package Description Links membrane_sdl_pluginMembrane video player based on SDL membrane_raw_video_parser_pluginPlugin for parsing raw video streams membrane_ffmpeg_swscale_pluginPlugin for scaling raw video streams and converting raw video format membrane_framerate_converter_pluginPlugin for adjusting the framerate of raw video stream membrane_video_merger_pluginPlugin for cutting and merging raw video streams membrane_camera_capture_pluginThis plugin can be used to capture video stream from an input device membrane_ffmpeg_video_filter_pluginThis 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_textPlugin providing speech recognition via Google Cloud Speech-to-Text API membrane_element_ibm_speech_to_textPlugin 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_formatRaw audio format definition membrane_raw_video_formatRaw video format definition membrane_aac_formatAdvanced Audio Codec format definition membrane_mp4_formatMPEG-4 container format definition membrane_opus_formatOpus audio format definition membrane_rtp_formatReal-time Transport Protocol format definition membrane_mpegaudio_formatMPEG audio format definition membrane_h264_formatH264 video format definition membrane_cmaf_formatCMAF definition membrane_matroska_formatMatroska format definition membrane_vp8_formatVP8 Format Description membrane_vp9_formatVP9 Format Description
Package Description Links ex_sdpParser and serializer for Session Description Protocol ex_libniceLibnice-based Interactive Connectivity Establishment (ICE) protocol support for Elixir ex_libsrtpElixir bindings for libsrtp ex_dtlsDTLS and DTLS-SRTP handshake library for Elixir, based on OpenSSL membrane_rtspRTSP client for Elixir membrane_common_audiomix[Experimental] membrane_telemetry_dashboardIntroduction to integrating membrane_timescaledb_reporter repository with membrane_dashboard to monitor your pipeline behaviour membrane_webrtc_serverSignalling 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_engineRTC Engine and its client library membrane_webrtc_plugin[Alpha] Plugin for sending and receiving media with WebRTC membrane_ice_pluginPlugin for ICE protocol
Package Description Links fake_turnSTUN and TURN library for Erlang / Elixir membrane_rtc_engine_timescaledbFunctions which allow storing Membrane.RTC.Engine metrics reports in a database jellyfish[In progress] Standalone media server
Package Description Links membrane-webrtc-jsJS/TS client library for Membrane RTC Engine membrane-webrtc-iosMembrane WebRTC client compatible with Membrane RTC Engine membrane-webrtc-androidMembrane WebRTC client compatible with Membrane RTC Engine react-native-membrane-webrtcReact Native wrapper for membrane-webrtc-ios and membrane-webrtc-android
Package Description Links JellybookTheoretical concepts behind general purpose media server.
Package Description Links membrane_videoroomVideo conferencing platform using WebRTC membrane_live[Alpha] Webinar app in React, Phoenix and Membrane
Package Description Links membrane_tutorialsRepository with tutorials text membrane_basic_pipeline_tutorialCode used in the comprehensive basic pipeline tutorial membrane_videoroom_tutorialCode used in the videroom tutorial membrane_webrtc_tutorialCode used in the webrtc tutorial
Package Description Links membrane_libnice_pluginReplaced by membrane_ice_plugin membrane_element_httpoisonReplaced by membrane_element_hackney membrane_dtls_pluginDTLS and DTLS-SRTP handshake implementation for Membrane ICE plugin membrane_loggersReplaced by the Membrane.Logger in Membrane Core membrane_caps_audio_flac[Suspended] FLAC audio format definition membrane_remote_stream_formatContent of this package has been moved to membrane_core membrane_element_rtp_jitter_bufferPackage has become part of membrane_rtp_plugin membrane_bin_rtpPackage has become part of membrane_rtp_plugin membrane_element_icecast[Experimental] Element capable of sending a stream into Icecast streaming server membrane_element_live_audiomixerSimple 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]