Packages in the Membrane ecosystem

Copy Markdown View Source

General

PackageDescription
membrane_sdkFull power of Membrane in a single package
membrane_coreThe core of Membrane Framework, multimedia processing framework written in Elixir
membrane_rtc_engine[Maintainer: fishjam-dev] Customizable Real-time Communication Engine/SFU library focused on WebRTC.
kino_membraneUtilities for introspecting Membrane pipelines in Livebook
docker_membrane[Labs] A docker image based on Ubuntu, with Erlang, Elixir and libraries necessary to test and run the Membrane Framework.
membrane_demoExamples of using the Membrane Framework
membrane_tutorialsRepository which contains text and assets used in Membrane Framework tutorials.
boomboxBoombox is a simple streaming tool built on top of Membrane

Plugins

General purpose

PackageDescription
membrane_file_pluginMembrane plugin for reading and writing to files
membrane_hackney_pluginHTTP sink and source based on Hackney
membrane_scissors_pluginElement for cutting off parts of the stream
membrane_tee_pluginMembrane plugin for splitting data from a single input to multiple outputs
membrane_funnel_pluginMembrane plugin 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 recording the entire stream sent through Membrane pads into a binary format and replaying it
membrane_fake_pluginFake Membrane sinks that drop incoming data
membrane_pcap_plugin[Labs] Membrane PCAP source, capable of reading captured packets in pcap format
membrane_transcoder_pluginMembrane plugin providing audio and video transcoding capabilities
membrane_generator_pluginVideo and audio samples generator
membrane_live_framerate_converter_plugin[Maintainer: kim-company] Membrane.Filter that drops or duplicates frames to match a target framerate. Designed for realtime applications
membrane_template_pluginTemplate for Membrane Elements

AI

PackageDescription
membrane_whisper_pluginMembrane plugin for integrating OpenAI's Whisper in audio processing pipelines
membrane_yolo_pluginMembrane Plugin for applying YOLO object detection on raw video frames

Streaming protocols

PackageDescription
membrane_webrtc_pluginPlugin for streaming via WebRTC
membrane_rtmp_pluginRTMP server & client
membrane_http_adaptive_stream_pluginPlugin generating manifests for HLS
membrane_srt_plugin
membrane_udp_pluginMembrane plugin for sending and receiving UDP streams
membrane_tcp_pluginMembrane plugin for sending and receiving TCP streams
membrane_rtp_pluginMembrane bins and elements for sending and receiving RTP/SRTP and RTCP/SRTCP streams
membrane_rtp_h264_pluginMembrane RTP payloader and depayloader for H264
membrane_rtp_aac_pluginRTP AAC depayloader
membrane_rtp_vp8_pluginMembrane elements for payloading and depayloading VP8 into RTP
membrane_rtp_vp9_plugin[Labs] Membrane elements for payloading and depayloading VP9 into RTP
membrane_rtp_mpegaudio_pluginMembrane RTP MPEG Audio depayloader
membrane_rtp_opus_pluginMembrane RTP payloader and depayloader for OPUS audio
membrane_rtp_g711_pluginMembrane RTP payloader and depayloader for G711 audio
membrane_rtsp_plugin[Maintainer: gBillal] Simplify connecting to RTSP server
membrane_mpeg_ts_plugin[Maintainer: kim-company] Membrane.Filter that demuxes MPEG-TS streams
membrane_hls_plugin[Maintainer: kim-company] Adaptive live streaming plugin (HLS) for the Membrane Framework

Containers

PackageDescription
membrane_mp4_pluginUtilities for MP4 container parsing and serialization and elements for muxing the stream to CMAF
membrane_matroska_pluginMatroska muxer and demuxer
membrane_flv_pluginMuxer and demuxer elements for FLV format
membrane_ivf_pluginPlugin for converting video stream into IVF format
membrane_ogg_pluginPlugin for depayloading an Ogg file into an Opus stream

Audio codecs

PackageDescription
membrane_aac_pluginAAC parser and complementary elements for AAC codec
membrane_aac_fdk_pluginMembrane AAC 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_opus_pluginMembrane Opus encoder and decoder
membrane_wav_pluginPlugin providing elements handling audio in WAV file format.
membrane_g711_pluginMembrane G.711 decoder, encoder and parser
membrane_g711_ffmpeg_pluginMembrane G.711 decoder and encoder based on FFmpeg

Video codecs

PackageDescription
membrane_h26x_pluginMembrane h264 and h265 parsers
membrane_h264_ffmpeg_pluginMembrane H264 decoder and encoder based on FFmpeg and x264
membrane_vpx_pluginMembrane plugin for decoding and encoding VP8 and VP9 streams
membrane_abr_transcoder_pluginABR (adaptive bitrate) transcoder, that accepts an h.264 video and outputs multiple variants of it with different qualities.
membrane_vk_video_pluginMembrane H.264 decoder and encoder based on vk-video
membrane_h265_ffmpeg_plugin[Maintainer: gBillal] Membrane H265 decoder and encoder based on FFmpeg and x265
elixir-turbojpeg[Maintainer: BinaryNoggin] libjpeg-turbo bindings for Elixir
membrane_subtitle_mixer_plugin[Maintainer: kim-company] Membrane.Filter that uses CEA708 to merge subtitles directly in H264 packets.

Raw audio

PackageDescription
membrane_raw_audio_parser_pluginMembrane element for parsing raw audio
membrane_portaudio_pluginRaw audio retriever and player based on PortAudio
membrane_audio_mix_pluginPlugin providing an element mixing raw audio frames.
membrane_audio_filler_pluginElement for filling missing buffers in audio stream
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

Raw video

PackageDescription
membrane_raw_video_parser_pluginMembrane plugin for parsing raw video streams
membrane_video_merger_pluginMembrane raw video cutter, merger and cut & merge bin
membrane_smelter_pluginMembrane plugin for video and audio mixing/compositing
membrane_camera_capture_pluginA set of elements allowing for capturing local media such as camera or microphone
membrane_rpicam_pluginMembrane rpicam plugin
membrane_framerate_converter_pluginElement for converting frame rate of raw video stream
membrane_sdl_pluginMembrane video player based on SDL
membrane_overlay_pluginFilter for applying overlay image or text on top of video
membrane_ffmpeg_swscale_pluginPlugin providing an element scaling raw video frames, using SWScale module of FFmpeg library.
membrane_ffmpeg_video_filter_pluginFFmpeg-based video filters
membrane_video_mixer_plugin[Maintainer: kim-company] Membrane.Filter that mixes a variable number of input videos into one output using ffmpeg filters

External APIs

PackageDescription
membrane_aws_plugin[Maintainer: fishjam-dev]
membrane_agora_pluginMembrane Sink for Agora Server Gateway
membrane_element_gcloud_speech_to_textMembrane plugin providing speech recognition via Google Cloud Speech-to-Text API
membrane_element_ibm_speech_to_textMembrane plugin providing speech recognition via IBM Cloud Speech-to-Text service
membrane_s3_plugin[Maintainer: YuzuTen] Membrane framework plugin to support S3 sources/destinations
membrane_transcription[Maintainer: lawik] Prototype transcription for Membrane

Formats

PackageDescription
membrane_rtp_formatReal-time Transport Protocol format for Membrane Framework
membrane_cmaf_formatMembrane description for Common Media Application Format
membrane_matroska_formatMatroska Membrane format
membrane_mp4_formatMPEG-4 container Membrane format
membrane_raw_audio_formatRaw audio format definition for the Membrane Multimedia Framework
membrane_raw_video_formatMembrane Multimedia Framework: Raw video format definition
membrane_aac_formatAdvanced Audio Codec Membrane format
membrane_opus_formatOpus audio format definition for Membrane Framework
membrane_flac_formatFLAC audio format description for Membrane Framework
membrane_mpegaudio_formatMPEG audio format definition for Membrane Framework
membrane_h264_formatMembrane Multimedia Framework: H264 video format definition
membrane_vp8_formatVP8 Membrane format
membrane_vp9_formatVP9 Membrane format
membrane_g711_formatMembrane Multimedia Framework: G711 audio format definition
membrane_av1_formatAbout Membrane Multimedia Framework: AV1 video format definition
membrane_h265_format[Maintainer: gBillal] H265 video format definition

Standalone media libs

PackageDescription
ex_webrtc[Maintainer: elixir-webrtc] An Elixir implementation of the W3C WebRTC API
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_m3u8Elixir package for serializing and deserializing M3U8 manifests.
ex_hlsAn Elixir package for handling HLS streams
ex_libsrtElixir bindings to libsrt library exposing client and server APIs
membrane_rtspRTSP client for Elixir
membrane_ffmpeg_generator[Labs] FFmpeg video and audio generator for tests, benchmarks and demos.

Utils

PackageDescription
unifexTool for generating interfaces between native C code and Elixir
bundlexMultiplatform app bundler tool for Elixir
beamchmarkElixir tool for benchmarking EVM performance
bunchA bunch of helper functions, intended to make life easier
bunch_nativeNative part of the Bunch package
shmexElixir bindings for shared memory
membrane_timestamp_queueQueue that aligns streams from multiple sources basing on timestamps
membrane_common_cMembrane Multimedia Framework: Common C Routines
membrane_telemetry_metricsMembrane tool for generating metrics
membrane_opentelemetry[Labs] Utilities for using OpenTelemetry with Membrane
membrane_precompiled_dependency_providerProvides URLs for precompiled dependencies used by Membrane plugins.