Apr 24, 2023

Membrane Update: April 2023

Here’s an update on what we were up to since the last update!

Done:

Jellyfish:

  • Completed REST API, including OpenAPI and AsyncAPI deployment
  • Authentication
  • First server-side notifications
  • Elixir Server SDK, TS and React Client SDK
  • Sample applications - dashboard, minimal-react, minimal, simple-app
  • Docker images
  • Documentation for Jellyfish and each SDK
  • Workshops on ElixirConf in Lisbon (Jellyfish presentation)
  • WebRTC and RC fixes for iOS
  • Media preview in React WebRTC SDK
  • Switching between speakers on mobile
  • Basic RTSP support in RTC engine

Membrane Core:

  • Release v0.11.3 of Membrane Core
  • Update existing Membrane packages in the Membrane framework organization, so that they use Membrane Core v0.11
  • Creation of benchmarks for offline processing
  • Enabling crash groups in bins
  • Ability to remove links without removing components
  • Auto demands in sinks & endpoints

Membrane Videoroom (WebRTC):

  • Update to Core 0.11
  • New frontend features in Membrane Videoroom (​​link: https://videoroom.membrane.work)
  • RTX (RTP retransmissions) in both directions
  • New active speaker detection implementation
  • Building new React libraries in Videoroom

Membrane Live (HLS):

  • Refactoring and fixing bugs in components related to HLS
  • Improving the stability of both frontend and backend components
  • Reducing stream latency
  • Enhancing stream quality
  • Chat with moderation
  • Membrane Live used for the first time officially at the All Hands meeting
  • Updating to Core 0.11 and rebasing to master
  • Refactoring HLS-related components

Smack (Community request team):

  • Creating a Discord tool for generating pages based on Discord's help threads
  • An Ogg depayloader in membrane_ogg_plugin, which will be able to read an Ogg file containing audio encoded with Opus codec
  • Presenting Google Analytics, Discord and Hex metrics in internal application
  • Video Compositor: Scene API, Queuing strategies design, Elixir-Rust integration
  • Livebook integrations: membrane_kino_plugin, Video Compositor demo, Playing .mp3 file demo
  • H.264 article
  • Automating GitHub releases with Sebex
  • Release v0.1.0 membrane_ffmpeg_generator - a tool for generating multimedia files for tests and demos. Check here.

In progress:

Jellyfish:

  • Adding RTSP to Jellyfish
  • Transferring part of the logic from RTC engine to Jellyfish
  • Completing server-side notifications
  • Two new chapters in Jellybook
  • Deployment of Jellyfish on Fly.io

Membrane Core:

  • Release v1.0.0-rc1 of Membrane Core
  • Release v0.12.0
  • Continuing work on automatic demands
  • Completing auto push
  • Atomic-based demands

Membrane Videoroom (WebRTC):

  • New product features in Videoroom such as: Google calendar add-on, poll after a call, etc
  • Server-side WebRTC metrics
  • Mic/cam device settings/choice

Membrane Live (HLS):

  • Public deployment for outsiders to test
  • Continuing work on stability improvements

Smack (Community request team):

  • Video Compositor - implementation of a scene architecture abstraction that will make the compositor more easily extendable: Queuing strategies implementation, Temporal transformations
  • A website tab based on our Discord threads, so that it is easier to find solutions for technical problems with Membrane
  • Livebook integration: Playing RTMP stream demo
  • Deprecation of old H264 parser
  • MP4 depayloader
  • Membrane React Native WebRTC educational materials and tutorials

Upcoming plans:

Jellyfish:

  • Simulcast refactor
  • Migration of Videoroom to Jellyfish

Membrane Core:

  • Maximum reduction of demands in favor of auto-demands (until we decide that we cannot limit them further)

Membrane Videoroom (WebRTC):

  • Using Videoroom internally in all teams at Software Mansion

Membrane Live (HLS):

  • Migration to Jellyfish

Smack (Community request team):

  • Video Compositor: Multiple outputs
  • Improvements and unification of a structure of readme files in plugins and demos
  • Automatic checking if readme files provide sufficient instructions to install required native dependencies on various operating systems
  • A documentation generator for native code

If you have any questions, you’re welcome to contact us via e-mail or on our Membrane Framework Discord channel.

Check out Jellybook and the Jellyfish documentation!

We’re looking forward to hearing from you and updating you on what’s new in Membrane!