Live data from Hacker News

Mediasoup – WebRTC video conferencing

github.com

31–40 of 49 posts

Re: Mediasoup – WebRTC video conferencing

#33
post #26

Earlier quoted context omitted.

Yes, you can use WebRTC DataChannels for sending custom text/binary data on top of a ICE+DTLS connection. BTW mediasoup supports DataChannels. Any question or comment about mediasoup?

What advantages does sending data over WebRTC have over sending data over websockets?

You said it yourself: it can be done peer 2 peer. A websocket will have a server in between.

Re: Mediasoup – WebRTC video conferencing

#34
post #6

Earlier quoted context omitted.

Jitsi is a full application (web app, backend servers) with a specific use case: meetings (similar to Zoom or Google Meet). 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. S…

> ...build whichever kind of audio/video applications... Is live streaming a use-case that's under scope? If so, can the client P2P or requires a relay server for all traffic?

Well, it's webRTC. So the main use case is live video streaming. But one would need to define 'live'. webRTC is really made for sub-second latency, which you need for conversations. If you don't require this you're better of using HLS streaming. Because achieving ultra-low latency does come with tradeoffs in complexity and quality.

webRTC is peer 2 peer, but that doesn't work if you have a lot of peers. That is where an SFU like mediasoup comes into the picture. That's a kind of relay server so you can send to many peers still over webRTC (thus with ultra low latency). Also, if the peers are behind firewalls, peer 2 peer also doesn't work and you need a TURN server to relay the video.

Re: Mediasoup – WebRTC video conferencing

#35

I've looked at WebRTC a few times, and every time I've been overwhelmed by the complexity of the protocol. I understand video streaming is hampered by codec patents, etc. but in 2020, the situation seems to be getting better with open source codecs unencumbered of patents (VP8,VP9, AV1, etc.) Why is the best we have still WebRTC? Seems it could be simplified as a protocol .. is this inherently hard or just a result o…

It's way too complicated. I suspect it's some design by committee with large backer interests interfering.

WebRTC is a collection of underlying protocols, SDP, STUN, DTLS, RTP, SCTP. A superficial glance it seems to make sense, each of these RFCs provide some aspect needed in WebRTC.

However. These standards are from a naive happy time when the internet was open and routable, which means it's only some subset of said standards needed. The main WebRTC RFC fails at pinning down which, so it's down to the implementations to find some happy subset that works.

Trying to implement it is so frustrating. At every corner you follow links to some underlying RFC, start reading and coding only to realize "is this even used?!"

SDP is maybe the single worst thing in this mess. It's a terrible flat file description of structured data organized differently depending on "plan-b" or "unified". It would be super easy to convey what SDP tries to convey in any purpose built format.

On a conceptual level there are too many abstractions in the API. MediaStream and RTPTransceiver are my two pet peeves. MediaStream is maybe nice in client code to group some tracks together into a player, but the abstraction should stay on that level. RTPTransceiver is just beyond me. Why do I want it? How does this help?

Re: Mediasoup – WebRTC video conferencing

#36
post #32

Has anybody compared MediaSoup with Kurento? https://www.kurento.org/

The team behind kurento got hired by twilio some years ago. Now it's basically dead with some very minimal maintenance being done.

I was asking about differences in the features they support, and results in real life experiences.

Also, I don't agree with Kurento being dead (off topic, but hey). It is still being maintained and works perfectly well for modern applications.

Re: Mediasoup – WebRTC video conferencing

#37

I've looked at WebRTC a few times, and every time I've been overwhelmed by the complexity of the protocol. I understand video streaming is hampered by codec patents, etc. but in 2020, the situation seems to be getting better with open source codecs unencumbered of patents (VP8,VP9, AV1, etc.) Why is the best we have still WebRTC? Seems it could be simplified as a protocol .. is this inherently hard or just a result o…

It's way too complicated. I suspect it's some design by committee with large backer interests interfering. WebRTC is a collection of underlying protocols, SDP, STUN, DTLS, RTP, SCTP. A superficial glance it seems to make sense, each of these RFCs provide some aspect needed in WebRTC. However. These standards are from a naive happy time when the internet was open and routable, which means it's only some subset of said…

It looks like RIPT[0] is people's answer to WebRTC's complexity.

I personally like WebRTC. Maybe just Stockholm syndrome though :) I see everyone saying QUIC is the answer, but all the complexity scares me. I imagine in 5 years everyone will miss how WebRTC is built with small building blocks.

WebRTC also bridges with a lot existing telephony stuff, which is nice! Since it talks RTP/SRTP I see a lot of people wiring it up to their older systems which is kind of cool!

[0] https://tools.ietf.org/html/draft-rosenbergjennings-dispatch...

Re: Mediasoup – WebRTC video conferencing

#39
post #30

Can someone explain how mediasoup differs from the RTCPeerConnection object (and related events) discussed in this Mozilla webrtc tutorial [0]? Given that it uses c++ I figure that mediasoup is more than just a wrapper around this? Any usability or reliability benefits of either? [0] https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/...

mediasoup (server side, so the Node + C++ component you mean) does not implement "RTCPeerConnection". That's just needed for browsers. In mediasoup we don't use SDP but specific RTP parameters as defined here:

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/

Re: Mediasoup – WebRTC video conferencing

#40

Has anybody compared MediaSoup with Kurento? https://www.kurento.org/

Neither is available in Debian repos.

mediasoup is not an application, is a Node.js library. It's yet nother NPM dependency in your Node.js application. No reason to have a DEB package.
Post reply on HN