Open mickel8 opened 7 months ago
Very interesting project! Would you consider supporting AV1 RTP encoding as well?
Very interesting project! Would you consider supporting AV1 RTP encoding as well?
@davydog187 of course! When it comes to the echo example we already support it! It's as easy as telling PeerConnection to negotiate AV1. Just change this line to:
{:ok, pc} =
PeerConnection.start_link(
ice_servers: @ice_servers,
video_codecs: [
%RTPCodecParameters{
payload_type: 45,
mime_type: "video/AV1",
clock_rate: 90_000
}
]
)
Besides this, we will of course add AV1 RTP payloader and depayloader so that you can pack/unpack AV1 into/from RTP packets :slightly_smiling_face:
This is really cool! How would this interact with Membrane Framework?
@lovebes at some point we will wrap our ExWebRTC.PeerConnection
in a Membrane sink/source, then you'll be able to send/receive media from WebRTC and pass it further into a Membrane pipeline.
Thanks for this, the code looks very friendly to use, like membrane.framework
! Any idea about DataChannel
s on the roadmap?
I work a lot with webrtc-rs
and I will try to port my codebase to Elixir too, if possible. For the client side deployments, relay
support is sometimes really necessary from what I have noticed, but not for servers and those who have SNAT or some properly working CGNATs. Hopefully IPv6 support will make them redundant but IPv6 is only deployed where I live, in the fiber deployments and only in new routers. My usecase only relies on DataChannel
s and would love to have it in a memory-safe language like Elixir
or Rust
.
I will eventually port everything to Elixir as it seems like things are easier to manage here over tokio
and async
rust, given better or equal CPU usage (BEAM is especially suited for soft-RT systems), at least on *nix.
Hi @ris-work! Datachannels are of course on our radar but unfortunately not in 0.2. Maybe in 0.3 or 0.4. But any contributions are welcomed!
Hi @ris-work! Datachannels are of course on our radar but unfortunately not in 0.2. Maybe in 0.3 or 0.4. But any contributions are welcomed!
Thank you very much for the response! I will be eagerly waiting. Unfortunately, I am neither an expert in WebRTC nor Elixir (or SCTP/RTP), but thank you for considering it for an upcoming version!
I am also excited to see this package developing so quickly.
There are a couple use cases I have in mind that would depend on data channels. For one, it would be cool to deploy gaming app with elixir-desktop, where two peers could connect directly without an external signaling server.
It's still early in my WebRTC journey, but if I can find time to support implementation, I'd be happy to do so.
0.1.0 (01.2024)
Media reading/writing:
PeerConnection
API:Documentation:
0.2.0 (04.2024)
RTCP related:
ICE features:
0.3.0 (07.2024)
UX improvements/features:
Integrations:
Fishjam:
Broadcaster improvements:
0.4.0 (08.2024)
Website
Broadcaster
ExWebRTC
UX
Others
If you have any questions or need help with a specific topic, please create a new discussion!