Elixir WebRTC - W3C compliant WebRTC implementation for the Elixir Ecosystem

Hi everyone! :wave:

We’ve just released the first version of Elixir WebRTC - W3C compliant WebRTC implementation for the Elixir Ecosystem.

Our goal is to create a similar to Pion project but for the Elixir devs.

Read the full blog post here.

43 Likes

Very exciting!

1 Like

Cool :slight_smile:

1 Like

@mickel8 I found your project on github this week.

Thank you for your effort :slight_smile:

I’m studying this topic for a year.

But I’m unable to find a low resource screencast/audio… I’ve tried membrane video_room, but I remember it consuming too much resource by peer :thinking:

I’m trying to figure out some traffic control that may lead Phoenix to route it at a low cost… maybe…

Am I being too naive?

@daviaws We are going to perform benchmarks in version 0.2 so I hope we will see how much slower comparing to Pion or webrtc-rs we are :slight_smile: You can track our roadmap here

Hi everyone! :wave:

I am very happy to announce a new version of Elixir WebRTC - 0.2.0! :tada:

The most important features we have implemented over the past three months:

  • support for retransmissions (RTX)
  • support for TWCC so that browser can send more than 300 kbps
  • WHIP/WHEP and the Broadcaster app that we have used to stream Elixir Community Kraków meetup!
  • mDNS and support for TURN servers
  • benchmarking tool

Read the blog post to learn more: https://blog.swmansion.com/the-second-release-of-elixir-webrtc-3e6358089455

We are also going to talk about Elixir WebRTC at CommCon this June!

The full changelog is available here: Release v0.2.0 · elixir-webrtc/ex_webrtc · GitHub

And the roadmap here: Roadmap · Issue #28 · elixir-webrtc/ex_webrtc · GitHub

3 Likes

I would like to try this but it does not work with latest phoenix versions

Because the lock depends on swoosh 1.16.9 which depends on req ~> 0.5 or ~> 1.0, the lock requires req ~> 0.5 or ~> 1.0.
And because bundlex >= 1.2.0 depends on req ~> 0.4.0, the lock is incompatible with bundlex >= 1.2.0.
And because ex_libsrtp >= 0.7.1 depends on bundlex ~> 1.3, the lock is incompatible with ex_libsrtp >= 0.7.1.
And because your app depends on the lock, ex_libsrtp >= 0.7.1 is forbidden.
So, because your app depends on ex_libsrtp ~> 0.7.1, version solving failed.
** (Mix) Hex dependency resolution failed

I usually get around this by forking repos and specifying my fork in deps but I have forked 4 repos already and it is getting very messy.

I opened a PR to update bundlex deps which should get us on the road to modernity.

The examples are really good BTW. I found a box of old smartphones and I’m going to turn some of them into security cameras :smiley:

Hi @slouchpie,

I am sorry for the very very late response. If you still have a problem, please open an issue in ex_webrtc repository :slight_smile:

1 Like

Hi everyone! :wave:

Elixir WebRTC 0.3.0 landed 3 days ago (looks like we did a release on Friday :open_mouth: )

Among others, there are:

  • support for inbound simulcast
  • support for MediaStreams
  • refactored API for configuring PeerConnection
  • Broadcaster (WHIP/WHEP server) improvements

Read the full changelog: https://github.com/elixir-webrtc/ex_webrtc/releases

1 Like

Hello everyone! :wave:

A couple of weeks ago, we released version 0.4.0 of Elixir WebRTC.

I wrote a small blog-post that summarizes current status of the project. Take a look at it here, and don’t miss our new website - https://elixir-webrtc.org!

Happy streaming :slight_smile:

2 Likes

Version 0.5.0 with support for Data Channels has been released! :tada:

Read the blog post: https://blog.swmansion.com/data-channels-in-elixir-webrtc-0853c7d0e256

5 Likes

Ooh, data channel support is very tantalizing! Also it’s neat that this uses SCTP. I remember reading up on that protocol quite a while ago and it’s nice to see it in use.

2 Likes

Finally we can do Erlang distribution over WebRTC like I’m sure you intended :D.

Maybe not. But this is very exciting!

2 Likes

The trick is that it is encapsulated into UDP at the end of the day :smiley:

1 Like

That would be so interesting!

1 Like