20 karma · joined July 16, 2015
https://mediasoup.org/documentation/v3/mediasoup/rtp-paramet...
If you want to know why we don't use SDP (as communication means between client and server) here a good reading: https://webrtchacks.com/webrtc-sdp-inaki-baz-castillo/
Any question or comment about mediasoup?
mediasoup overview here: https://mediasoup.org/documentation/overview/
mediasouop is not an application but a set of server and client low level libraries to build whichever kind of audio/video applications (not just meetings). You don't "install mediasoup and configure it". You create your Node app and integrate mediasoup as you do with any other NPM dependency. Same in client side. More here:
https://mediasoup.org/documentation/overview/
Of course, this means that you must build your application, including UI, client-server signaling, etc etc.
Anyway, WebRTC is not just about RTP. In fact, before RTP happens, ICE and DTLS must de done.
Well, no. This is not about sending all video layers to all receivers and let them choose which one to render. Not al all.
The purpose of video simulcast/SVC is the opposite: make the SFU decide (based on estimated per receiver bandwidth or whatever) which video layers to deliver to each receiver, so a HQ video of 8 mbps does not break your Internet downlink (you just receive the lowest video layer which is 1 mbps, for example).
And more important: no, the server can not send the same UDP datagram (the same RTP packet) to all receivers. The server needs a different RTP sequence number count and a different SRTP encryption keys with each receiver.
I'm afraid this is not so easy as you say, not at all.
BTW: Do you want to say something about mediasoup? or just about your stuff?
https://mediasoup.org/documentation/v3/mediasoup/api/#WebRtc...
YouIf you want to listen in TLS 443 for all clients, add a TURN server into your backend. Just that.
https://mediasoup.org/documentation/v3/mediasoup/api/#WebRtc...
> TCP candidate so a TURN server isn't needed at all?
This is not true. A router may still block TCP traffic different than TLS or traffic that does not have destinatiuon port 80 or 443. So ICE TCP candidates do not avoid the need for a TURN server in certain cases.
TL'DR': Pornhub uses mediasoup.
I've read many comments here asking about "how mediasoup is different than XXX" or about "mobile apps". I think the Overview in the website should be self explanatory, I'll just paste a fragment here:
https://mediasoup.org/documentation/overview/
--------------------- Design goals of mediasoup and its client side libraries:
- Be a SFU (Selective Forwarding Unit). - Support both WebRTC and plain RTP input and output. - Be a Node.js module in server side. - Be a tiny JavaScript and C++ libraries in client side. - Be minimalist: just handle the media layer. - Be signaling agnostic: do not mandate any signaling protocol. - Be super low level API. - Support all existing WebRTC endpoints. - Enable integration with well known multimedia libraries/tools.
Use cases:
- Group video chat applications. - One-to-many (or few-to-many) broadcasting applications in real-time. - RTP streaming.
So you don't know what mediasoup does but you assure that "no need to use a SFU". Too much free time to comment maybe?
e2ee makes sense in one-to-one and N-to-N scenarios. It's just more complex in N-to-N scenarios because you DO need a centralized server so each participant just sends its audio/video once (to the server) and the server distributes it to others given whichever application policy/logic. That's a SFU, and that's what mediasoup does.
Comparing Jitsi with mediasoup is like comparing Netflix (backend + apps) with Express.js + libcurl.
Jitsi developers may replace their RTC core internals (including the SFU) with mediasoup + mediasoup-client and you wouldn't even realize of it. Hope this helps.
> You don't even need servers if you go full p2p
If you have N participants into the same "room", and do not have a central SFU that relays streams to others, then you have a full mesh network with all participants sending audio and video to all the others. Is that the "go full p2p" you meant?. Well, try it, and you'll see how your CPU burns when the browser/app tries to encode your webcam video source N times. And of course, you'd need N x uplink.