Live data from Hacker News

An Introduction to WebRTC Simulcast

blog.livekit.io

11–15 of 15 posts

Re: An Introduction to WebRTC Simulcast

#11

This approach of the broadcasting "peer" sending multiple streams (with varying bitrates) to a relaying server is a neat solution. This is done to avoid transcoding on the relay servers, so it makes the servers cheap. It is superior to: > Lower[ring] the bitrate of everyone’s streams so it doesn’t overwhelm the slow user (i.e. the lowest common denominator) However, it's still a lowest common denominator solution wit…

> However, it's still a lowest common denominator solution with respect to what codec is being used. The broadcasting "peer" has to send using a codec that every other peer supports. Essentially that means you're stuck with the lowest common denominator codec.

This is correct, though I wouldn't call them "inferior codecs": all WebRTC capable browsers support both H.264 and VP8 as required by the specs.

Re: An Introduction to WebRTC Simulcast

#13
Does anyone know where LiveKit's implementation of congestion control is? I can't find it looking through their code and to me that's a major sign of the maturity or completeness of an SFU. For example, Jitsi, Signal's SFU, and (I think) MediaSoup have it. But I've not yet seen a pion-based implementation of congestion control and I'm hoping that LiveKit has fixed that. But I can't find it.

Re: An Introduction to WebRTC Simulcast

#14
post #6
post #5

Earlier quoted context omitted.

I would really like to see some projects that leverage SVC, as I haven't seen a single example (and ffmpeg doesn't support them).

I believe Galene does[0] Juliusz was working on pion/RTP for it. You can see all the details here [1] [0] https://github.com/jech/galene [1] https://github.com/pion/rtp/blob/master/codecs/vp9_packet.go

Thanks a lot for these pointers!

Re: An Introduction to WebRTC Simulcast

#15
post #6
post #5

Earlier quoted context omitted.

I would really like to see some projects that leverage SVC, as I haven't seen a single example (and ffmpeg doesn't support them).

I believe Galene does[0] Juliusz was working on pion/RTP for it. You can see all the details here [1] [0] https://github.com/jech/galene [1] https://github.com/pion/rtp/blob/master/codecs/vp9_packet.go

Yes, Galene 0.4 and later uses SVC by default when the following conditions are satisfied:

  * the sender is using a Chromium-like browser (the receiver may be Chromium, Firefox or Safari);
  * the codec is either VP8 or VP9;
  * there are at least three users in the group.
You can see a demo at https://galene.org:8443/group/public and https://galene.org:8443/group/public-vp9 (any username, empty password).
Post reply on HN