How does mediasoup deal with weak network connections?

From Write our own bandwidth estimator · Issue #344 · versatica/mediasoup · GitHub I’ve noticed that currently mediasoup is depending on libwebrtc only for the congestion control algorithm. But there’re also other algorithms to deal with weak network in libwebrtc, such as ARQ, FEC, etc. What did mediasoup do in these area? How’s the effects compare with libwebrtc?

May I know the purpose of your question?

It’s mainly for understanding the underlying. I saw many open source SFU get rid of libwebrtc dependency, including mediasoup(still depends on libwebrtc for congestion control so far). But by constrast of the mature weak network connection algorithm in libwebrtc, I’m very curious that how the SFUs’ quality compare with the libwebrtc implementation. It won’t affect the uploading(from client to SFU), but may affect the downloading(from SFU to client).

I don’t know what to answer, sorry. I don’t know how to compare our mediasoup C++ stack (written from scratch for a good reason) with libwebrtc.

Maybe I should ask the question more concretely.
Let’s say client A and mediasoup M exchange stream over webrtc protocol. If the network is not good enough, there might be some packets lost. M will send NACK back to A to trigger A’s retransmission, which is implemented in libwebrtc. For the backward transmission(M → A), A will send NACK to M for M’s retransmission, am I right? Is there any difference between A and M’s retransmission strategy? It may affect a lot on weak network based on my experience.
On the other hand, mediasoup seems no FEC at the moment FEC implementation.
Please feel free to correct me if any misunderstanding. Thanks!

We implement RTP and RTCP standards in mediasoup the way they are supposed to work according to the spec, that’s all. Of course we test how it behaves with Chrome and other browsers. We are not gonna use libwebrtc just because Chrome uses it.

Right, mediasoup does not implement FEC. Neither libwebrtc does it properly, and we are waiting for FLEX FEC to be implemented in browsers/devices before we do it in mediasoup.

1 Like