DEV Community

Why Video Chat is a Hard Technical Problem

Em Lazer-Walker on March 12, 2021

Back over the summer, I began a series of experiments to play around with new forms of synchronous online social interaction while we're all stuck ...
Collapse
 
missamarakay profile image
Amara Graham

This doesn't mean that WebRTC as a technology isn't viable for things like this — all of the solutions I recommend later in this article ultimately still use WebRTC under the hood — but reality is significantly more complicated than just reading the WebRTC API spec and building against it.

YES! I think vendor WebRTC-based solutions are so often pitched as just "WebRTC" without telling the full story. Like this actually includes helper functions to handle the devices or it gives you some bare bones back-end behind the scenes. It's the API, the networking pieces, the connections (and detecting when/if they fail). It's a lot!

Great article, Em! I'm not in the live video streaming space anymore, but this totally resonates with what our developer community was grappling with.

Collapse
 
rhymes profile image
rhymes

Great article, thank you!

Collapse
 
kevin_odongo35 profile image
Kevin Odongo

Great article. You have broken everything into great explanation and quite frankly full-mesh can be a pain.

Collapse
 
pschoeps profile image
Patrick Schoeps

Thanks for writing this post. We are currently using Twilio Programmable Video to service a large low income population, often connecting on older devices and a medium or weak connection. A lot of your issues resonate with me, even though we skipped to a hosted solution! Currently we are achieving about a 85% connection rate among these individuals, at about 300 calls a day. And it took an incredible amount of work and optimization just to get here! Video streaming is hard, and I think we have a ways to go before it's really accessible.

Collapse
 
kimberleejohnson profile image
Kimberlee Johnson

Hi, Patrick! I work at daily.co, and we're working on solving these realtime video problems. If you haven't already checked us out, feel free to have a look and please let me know if I can help with anything!

Collapse
 
kimberleejohnson profile image
Kimberlee Johnson

Thank you for this great article! It resonated a lot: we're working on realtime video problems at daily.co.

If anybody reading this looks into experimenting with Daily, please let me know if I can help with anything!

Collapse
 
pg94au profile image
Paul G

In a project I was working on (as an example), we were using JsSIP with a SIP server for signaling, so building something from scratch isn't a requirement.

Not related to the general technical challenges discussed, but we had a seriously aggravating problem with audio breaking up and going silent that was related to WebRTC's echo cancellation not working correctly in our environment. Enabling echo cancellation support in our OS-level audio drivers (and turning it off in WebRTC) eventually solved that problem.

Collapse
 
mindfulshadow profile image
choobie™

This is a great post! I agree. Building a scalable WebRTC solution is technically difficult. Personally it’s the kind of challenge I relish! There are so many services you can use to get up and running if you don’t want to deal with all the technicals. We found that using Twilio’s SDK’s didn’t always give the best video quality, another alternative to Twilio is Agora.io which has similar API’s. We ended up building our own SFU from scratch using MediaSoup. WebRTC can be a joy when it works as you envisioned.

Also be glad you never had to work with the old Microsoft Edge WebRTC (ORTC) implementation 🤮

Collapse
 
nikolicstjepan profile image
Stjepan

Great article, thanks for posting! :)

Collapse
 
jwp profile image
John Peters

Wow much more complicated than I thought. Tx.

Collapse
 
whiteadi profile image
Adrian Albu

hehe, I was in a team that we started from scratch on our react + webrtc video chat app and this reminded me of all the struggle, thanks for bringing those good times back for me :)

Collapse
 
aalphaindia profile image
Pawan Pawar

Good one!