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.
I am here to learn. Technology evolves every day and my passion is to learn and create applications that can change and make human day to day activity simple and organized.
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.
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!
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.
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 🤮
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 :)
We're a place where coders share, stay up-to-date and grow their careers.
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.
Great article, thank you!
Great article. You have broken everything into great explanation and quite frankly full-mesh can be a pain.
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.
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!
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!
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.
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 🤮
Great article, thanks for posting! :)
Wow much more complicated than I thought. Tx.
Good one!
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 :)