Membrane - a new framework for multimedia processing

We do have HLS element and it’s working in one of the projects we did comercially, although it does not have public stable release yet. It will be available within a few weeks.


Thats a a pleasure to know! Thank you!

WebRTC will require:

  1. signalling (easiest part)
  2. ICE
  3. DTLS (integrated with SRTP)
  4. SRTP (integrated with DTLS)

DTLS is the most complicated thing, I don’t know if latest code in erlang can already do this, we have our own implementation of DTLS.

Our rust code just uses openssl implementation, it works, but in flussonic we have implementation in erlang. Source code for dtls is somewhere there in the internet, it is possible to find it.

2-3 months is very optimistic, you are really cool guys if you will do it in this time =)

If you refuse from adaptive bitrate control (you should postpone this thing) and other extended features, it is possible to do it before you will be pissed off by it.

From all our protocols (rtmp, rtsp, hls, dash, mss, mpegts, h323, sip), webrtc was most painful to implement.

1 Like

The summary is correct.

We have run into some issues with DTLS in latest Erlang and we have to rely on some hacks and external C code to make it work. We will consider backporting the changes to the erlang core but we don’t want to wait for the release and force users to use the most recent Erlang version so for some time we will probably stay as it is.

We started a while ago and these 2-3 months are essentialy time to assemble all these parts together, not to build this from scratch. Keep fingers crossed :slight_smile:


Amazing work with membrane. I’m just about to start a project and this “starter kit” sounds like the perfect tool to learn more about both janus and membrane.

Have you guys released the starter kit yet?

1 Like

Hello, there!
Membrane Core 0.5.1 is out, and stable!


Tomasz Zawada


Hi, I was happy when I read this but I havent seen any updates on it. If I missed something, would you share a link? Also what would I do if I aint sure of the format in the video file? Could I do choose the demuxer depending on the codecs in the file etc?

Hi @smolcatgirl, we’ve been having lots on our heads recently, and it’s taking longer than expected… nevertheless, we have just released HTTP Adaptive Stream plugin that supports streaming via HLS :tada: However, note that this expects the stream already muxed to CMAF. The plugin doing the muxing is still under refactor, you can track the progress here.

I’d also like to note we have just released libopus-based Opus decoder, yet another component needed for WebRTC.

Also what would I do if I aint sure of the format in the video file? Could I do choose the demuxer depending on the codecs in the file etc?

You could, but Membrane doesn’t provide a transparent way to do that, you’d need to implement the choosing part or do some preprocessing with another tool, like FFmpeg.


Thank for your reply! :3

1 Like


This may be a part of capture process. We use it to capture SDI cards.

Hi there, it’s finally time to announce that Membrane supports HLS :tada: We finished all the needed plugins and prepared a demo of retrieving RTP stream and publishing it via HLS. @kanes115 described how we used it to create a streaming platform in this blog post. Enjoy :slight_smile:


We have a task to recode rtsp live streams into webrtc live streams.
We were able to do it on golang with this solution.
Can we do it on membrane?

Hi @arruah, not yet, but we’re close. You can already receive RTSP streams with RTSP and RTP. WebRTC support is still in progress, though we have most components ready.


Currently supports only RTSP 1.1 defined by RFC2326 Very old version. Not good.

Thank you @Membrane-Core-Team for such great work! :1st_place_medal:
I was trying to build a pipeline to stream a video file by HLS but i did not find any example of somthing similar to that. I tried to make the pipeline but looks like i am lost.
I am sure it would be very helpful for us if you provide some kind of simple example of streaming a video file.

Thanks :smiley:

1 Like

You can find an example of converting RTP stream to HLS in the membrane demo repository. You just need to replace RTP with plain H264/AAC.

1 Like

From my experience, the main use case for RTSP now is to connect to remote cameras, and all of them support RTSP 1.0, while 2.0 is a rare case. Having in mind that 2.0 is not backwards compatible, answer yourself what would you implement in the first place :wink: Also, note that the definition of ‘very old’ changes a lot when it comes to hardware. That said, I’m curious why is 2.0 needed in your case?



By the way, we’re currently working on an open-source toolkit that is based on Membrane and Janus and is kind of “starter kit” for creating a conference or webinar application.

It should handle all the hard things mentioned by @mat-hek and in the talk he referenced.

If you can wait 2-3 weeks you should be able to use it as a basis for you application.

I just stumbled on this and was wondering if yall were able to get that out into the wild? Would love to check it out. Thanks!

1 Like

A post was split to a new topic: How to take a file source and create a HLS stream in Membrane?

2 posts were split to a new topic: New Membrane website has just launched!