The Membrane Framework ecosystem is composed of various specialized packages categorized into plugins, formats, standalone media libraries, and utilities. Use these packages to extend your media pipelines with support for specific cloud services, media containers, codecs, or protocols.
Plugins
Plugins provide integration with external services or specific media handling capabilities. Examples include:
membrane_aws_plugin: AWS integration.membrane_agora_plugin: Sink for Agora Server Gateway.membrane_element_gcloud_speech_to_text: Google Cloud Speech-to-Text API.membrane_element_ibm_speech_to_text: IBM Cloud Speech-to-Text service.membrane_s3_plugin: S3 sources and destinations.membrane_transcription: Prototype transcription.
Formats
Format packages define how different media containers and codecs are represented within the framework. Examples include:
- Containers:
membrane_rtp_format, membrane_cmaf_format, membrane_matroska_format, membrane_mp4_format. - Audio Codecs:
membrane_raw_audio_format, membrane_aac_format, membrane_opus_format, membrane_flac_format, membrane_mpegaudio_format, membrane_g711_format. - Video Codecs:
membrane_raw_video_format, membrane_h264_format, membrane_vp8_format, membrane_vp9_format, membrane_av1_format, membrane_h265_format.
Standalone Media Libraries
These are specialized Elixir libraries for handling specific media protocols or standards, often used alongside the framework:
ex_webrtc: W3C WebRTC API implementation.ex_sdp: Session Description Protocol parser/serializer.ex_libnice: ICE protocol support.ex_libsrtp: libsrtp bindings.ex_m3u8: M3U8 manifest serialization/deserialization.ex_hls: HLS stream handling.ex_libsrt: libsrt client/server API bindings.membrane_rtsp: RTSP client.membrane_ffmpeg_generator: FFmpeg generator for tests and demos.