BlogGeek.me
bloggeek.me · Personal blog · on HN since 2012
Tsahi Levent-Levi writes about WebRTC, covering video quality, codecs, architecture, and the market.
What HN saysHN commenters link it for WebRTC explanations, such as its glossary entry on SFUs, and comparisons with Zoom.
38HN people shared it
22linked it in comments
59stories submitted
277story points
6 months agolast shared
2012people per year2026
Most-shared posts
- 1WebRTC vs. Zoom. Who Has Better Video Quality?4 people · 2 points · first shared 2018 · discussion on HN
- 2How Many Users Can Fit in a WebRTC Call?2 people · 8 points · first shared 2018 · discussion on HN
- 3Who Needs WebSockets in an HTTP/2 World?2 people · 4 points · first shared 2015 · discussion on HN
- 4AV1 vs. HEVC: Are the WebRTC codec wars back?2 people · 3 points · first shared 2020 · discussion on HN
- 5Is WebRTC Safe?2 people · 1 points · first shared 2017 · discussion on HN
- 6Sfu2 people · first shared 2024
- 7Psa mdns and local ice candidates are coming2 people · first shared 2020
- 8Webrtc server2 people · first shared 2020
- 9When will zoom use webrtc2 people · first shared 2020
- 10Why was SCTP selected for WebRTC’s data channel? (2014)1 people · 70 points · first shared 2019 · 11 comments on HN
- 11From 0 to Skype in 9 Months1 people · 55 points · first shared 2013 · 23 comments on HN
- 12How to send a file using WebRTC1 people · 30 points · first shared 2013 · 7 comments on HN
- 13AWS DeepLens and the Future of AI Cameras and Vision1 people · 9 points · first shared 2018 · discussion on HN
- 14Is Chrome Going to Be ONLY Browser? (Microsoft Ditching Edge)1 people · 6 points · first shared 2018 · 2 comments on HN
- 15Twelephone adds real-time communications to Twitter using Node.JS & WebRTC1 people · 5 points · first shared 2012 · 1 comments on HN
What HN people wrote when they linked it
mbzi · 2020-06-15
I do a significant amount of work with Hospitals and secure environments (Military, etc). TURN is needed 100% of the time. P2P traffic is not allowed. All IP addresses need to be known and kept static upfront for firewall whitelisting.
This means products which help alleviate WebRTC infrastructure such as AWS Kinesis are not allowed (due to how they allocate turn servers with unknown IP addresses) and a company needs to manage their own infrastructure / TURN servers (which allows you to cherry pick where server locations are (HIPAA, country legal for what is streamed)) or accept Twillio's, or their competitors etc, large IP ranges (and don't have server location flexibility / increased commercial and market growth restrictions).
Whichever route you go down it is quite an undertaking!
P.s. Tsahi Levent-Levi is truly exceptional in this area. I highly recommend reading his blog and training courses: https://bloggeek.me/, https://webrtccourse.com/, AND he runs an amazing testing product https://www.testrtc.com. if you build your own infrastructure testRTC is a must.
goffi · 2025-10-07
Indeed, Jingle is for establishing connections, P2P when possible, but there are lot of extensions around it.
I've proposed a specification for SFU hosting (check https://bloggeek.me/webrtcglossary/sfu/ if you don't know what's a SFU), and wrote a component based on the excellent Galène SFU, as well as client implementation (in Libervia) as part of a NLNet/NGI grant (https://nlnet.nl/project/Libervia-AV/).
XMPP council (disclaimer: I'm a council member for the current term) asked me to some modifications and to re-propose, which I'm about to do. I couldn't find the time so far (cause I'm working on ton on stuffs), but will go back to it very soon.
To sum-up: this is very much worked on.
mnorris · 2022-09-14
It sounds like you want to do adaptive bitrate streaming. This [1] blogpost probably does better justice than I could do.
I think it kind of sounds similar to what you were mentioning, but it sounds like the lowest possible latency solution is to stream multiple streams of different bit rates at the same time and then WebRTC picks up the best one it can.
[1] https://bloggeek.me/webrtc-simulcast-and-abr-two-sides-of-the-same-coi…
spicyramen · 2020-06-06
In the past there was no encryption for communications then sRTP with DTLS became the way of doing it (secure signalling and media) when you negotiate sRTP material between parties you can intercept the keys and inject some pretending to be the remote caller and viceversa. https://bloggeek.me/is-webrtc-safe/ a good read
janinge · 2020-04-02
Zoom also use the Selective Forwarding Unit (SFU) architecture. Or a central server that kind of "mix" streams and send them to all participants, if you will.
Jitsi Videobridge does this by receiving simulcast streams from each participant. This server individually picks out streams and qualities that will fit in each recipient's downstream pipe based on measured bandwidth and configured priorities (e.g. you could choose to give more bandwidth to those who are actively speaking, or shut down all but the last N speakers video streams).
Yes, the available network bandwith on a Jitsi Videobridge could be a bottleneck. Each meeting need to fit on a single bridge instance. However, using common servers connected at 1 Gbps or 10 Gbps, it shouldn't be any problem to have meetings with substantially more than 2-4 people. Say a HD stream from most webcameras outputs 3 Mbps at full blast, with 50% overhead due to the simulcasting. That's over 2000 participants on a single server connected at 10 Gbps, all receiving all video streams in full quality.
For meetings with 2 participants the streams run peer to peer, so here you get the best possible latency and quality.
We've set up Jitsi on a VPS instance at a nearby provider, and have not seen any problems with meetings of 10-15 people. Stability and performance also outperforms all the other solutions I've tried. There's currently a bug in Firefox's simulcast implementation, so if you have any participant using this browser, this…
kragen · 2024-09-04
apparently 'an sfu' is 'is a media server component capable of receiving multiple media streams and then deciding which of these media streams should be sent to which participants [of which the] main use is in supporting group calls and live streaming/broadcast scenarios.' according to https://bloggeek.me/webrtcglossary/sfu/
i suspect webrtc implementations in browsers are the source of many of the problems but i don't know how to debug that
dane-pgp · 2021-01-27
I don't know if people remember the fraught Codec War of 2014, but the choice of VP8 and H.264 both being "Mandatory To Implement" was the compromise that the IETF reached, despite much opposition from both sides.[0]
As often happens with wars, though, the outcome in 2014 wasn't enough to permanently settle the matter, and there was a further outbreak of fighting later between VP9 and HEVC. More recently, some are saying[1] that the Codec Wars are back, with the arrival of AV1 as a contender.
[0] https://bloggeek.me/winners-losers-webrtc-video-mti/
[1] https://bloggeek.me/av1-vs-hevc-webrtc-codec/
Sean-Der · 2020-09-14
A few hundred people should be fine! For fun I made https://github.com/pion/rtsp-bench and was doing 14k people before I saw my first hiccup.
You just need watch CPU Usage and Network attributes (loss, congestion etc...) Getting this right will take a little bit of WebRTC knowledge. Happy to answer any specific questions :)
There are also lots of hosted options as well! Real world WebRTC has a few different parts though, https://bloggeek.me/webrtc-server/ is a good intro I think.
Volundr · 2020-06-28
Actually, I'm currently working on an app using WebRTC, and from everything I've read you actually still need a STUN and in some cases a TURN server, even if you have a public IP:
https://bloggeek.me/turn-public-ip-address/
To be perfectly honest, I'm still fuzzy on the why, but numerous blog posts, stack overflow questions, and the Kurento forums agree. This being Hacker News maybe someone with chime in with the technical reasoning.
frabbit · 2020-06-10
And this is better: https://bloggeek.me/when-will-zoom-use-webrtc/
expialidocious · 2020-04-30
The Twilio page you posted was good.
I really like BlogGeek.me for WebRTC info. Here's an entry on the various servers involved.
https://bloggeek.me/webrtc-server/
basro · 2020-04-26
I think there's not.
But, in case your WebRTC is disabled because of the local ip leaking thing, I'll have you know that both chrome and firefox have changed that and no longer leak local ips, instead mDNS is being used now.
If you are interested you can read about it here:
https://bloggeek.me/psa-mdns-and-local-ice-candidates-are-coming/
xorcist · 2020-03-31
Right. It's also important to understand when the reason to build non-standard things are just "productization" (intended to open the wallets of enterprise clients) and when it is because it really provides a better service to the end user.
Having native code running in every client makes a service provider more valuable. It is much the same reason service providers would rather have you running their app on mobile than utilizing the web browser.
This link provides a bit of background to the webrtchack articles above and give a bit of background to when WebRTC is sufficient:
https://bloggeek.me/webrtc-vs-zoom-video-quality/
dbrgn · 2020-03-30
Thanks for the information, I also realized that a while after writing the comment. No wonder the experience is worse than in their native client, data channels are still terribly unoptimized (sometimes even broken in some aspects).
Edit: https://bloggeek.me/when-will-zoom-use-webrtc/
j1elo · 2020-03-18
Thing is, while WebRTC per-se is a nice standard for p2p, the actual limitations of technology (i.e. bandwidth) in the real world mean that sessions with 4 or more participants become unusable very quickly as the number of people increments.
So, 99% of "serious" use cases end up requiring a centralized relay, anyway.
Tsahi Levent-Levi covered this topic: https://bloggeek.me/how-many-users-webrtc-call/
sandGorgon · 2019-07-09
Why is the web client (on Chrome, etc) so bad on Zoom ? I mean, people are building Google Earth on the browser .Its not just the bad video experience - even the product experience is seriously broken.
For example, the default audio setting when you sign in to the web video client is to connect using PHONE AUDIO. In case you figure out how to click the tab to use computer audio...it breaks down a couple of time in asking for browser permissions (camera, mic). It is unusually bad for something that is supposed to be that good.
there are all these articles about the comparisons - https://webrtchacks.com/zoom-avoids-using-webrtc/
https://bloggeek.me/webrtc-vs-zoom-video-quality/
hangouts still rules when it comes to web based video conferencing. And for countries with massive linux based usage (like India), Zoom is not a very viable option.
cpeterso · 2016-03-16
Slack does use WebRTC:
https://bloggeek.me/slack-acquires-screenhero/
https://webrtchacks.com/dear-slack/
hackerboos · 2015-11-16
Ah push notifications the feature we are all looking for in XMPP which is there (http://xmpp.org/extensions/xep-0357.html) but not implemented in any of the open source servers.
It's missing websockets support though which would be nice.
I found a nice overview of what Matrix.org is doing [2].
[1] - http://matrix.org/docs/spec/#id33
[2] - https://bloggeek.me/matrix-webrtc-interview/
arnaudbud · 2015-09-10
ramon · 2015-06-16
I agree with judah it really comes down to let these developers pay the 100 dollars, buy a mac book then develop on my platform spending bucks on my "eco-system" rather then let them easily develop fast on the web without any headaches.
https://bloggeek.me/apple-dragging-feet-webrtc/
I think in a couple of years Apple will be so behind that someone else less evil will be the underdog.
drag0s · 2021-05-11
Thanks! It's true that on a 2 or 3 call participants P2P almost always ends up having better performance. But the problem comes when you try adding more participants.
The limiting factor is that on a P2P mesh with N participants, each participant sends its stream to all other participants (to N-1 destinations) and receives the stream from all other participants (receives N-1 streams), which incurs on more network and CPU requirements.
When we go above 4 participants the call model changes to Single-Forwarding-Unit (SFU) where there is a central server that dispatches the different streams to each user. That way, each participant would only upload their stream once, and download N-1 streams back. This server may also apply some other optimizations. You can learn more about P2P limitations from this blog post. [1]
That said, as this CoBrowsing experience is not as bandwith intensive as a 30fps high-quality video, we can afford to use P2P with more than 4 participants.
[1] https://bloggeek.me/webrtc-p2p-mesh/
Edit: btw, we use daily.co for the video and audio part of our product. They abstract very well all the complexity related with real-time video and audio.
rektide · 2020-10-08
ok I didn't know that this was john nagle. that's intimidating.
i'm still highly alarmed, both by John & the general level of discourse going on all throughout this thread. i posted replies to a number of others too. there is wild unsubstantiated & mean-spirited speculation running rampant through this, imo, good news. no one talks to how or why they think this is going to help spy on us, or reduce our ability to block ads, yet it's a very popular & trendy opinion. it seems widely assumed that this is all for bad, and everyone seems to want to believe that mis-information.
i find it distressing that the world would be so paranoid & crazy as this. after years of IETF hard work & discussion, after countless engineers work tirelessly to maximize privacy & security, after countless points are raised & tackled, the world greets what we think is a real & significant improvement with disdain, distrust, & belittling. this feels like the kind of easy-to-spread paranoia & madness that is part & parcel to the disinformation that has grown a threat to civil order, a threat to reason. it's too easy to knock things down[1], done so casually, & people seem to want to hear it too much. i realize i haven't been helping, haven't been waging an effective campaign to try to promote a healthier course for us, better discourse, but i want to. i want to not be overwhelmed & saddened by unsupported unreason.
touching back to @animats' post:
> The real motivation is probably to merge ads into…