4 ms·
Why is it hard? Video streaming has been a thing for a couple decades. I am genuinely curious.
by jfkebwjsbx 7y ago
Why is it hard? Video streaming has been a thing for a couple decades. I am genuinely curious.
- TwoBit 7y agoThe companies selling video streaming and conferencing have other issues, such as service costs. And they typically don't retain very good engineering teams.
- jonex 7y agoIt's hard because it's dependant of other systems that are often not fully functional. The things that needs to work for a video call is: The network must be reasonably reliable and not overloaded. The camera must be configured and not privacy blocked. The correct recording device must be used, it must be recording (opportunity for both user error and OS issues here). If hardware codes are used (a requirement on lower end devices) it must support low enough bitrates, must have the right options. Typically all these things are slightly different between different devices and operating systems. It's typically easy to build a proof of concept with great quality and reliable connections between two given devices over a given network. It's super hard to make a product that is reliable enough that millions of users only rarely run into issues.
- michaelt 7y agoWhen you stream a Youtube or Netflix video, you can download several seconds ahead over boring old HTTP. It's a one-to-one link, you don't have to upload anything, and you don't need access the user's camera or microphone. To be competitive in videoconferencing these days, you need: * Low latency, so people don't talk over each other * Video and audio compression that doesn't get confused by dropped packets. * Setup so easy first-time users won't be late to their video job interview. * Group calls for 10+ people * HD quality * Adaptive bitrates, for users on different speed links * Skip-free audio even if a user's link goes from uncongested to heavily congested. * Reliable support for every webcam and USB headset on the market, and hot-plugging them during the call, and changing OS permissions during the call. * Reliable support for unreliable bluetooth headsets and unreliable bluetooth dongles. * Echo cancellation that works with every device and room configuration going. Including devices that have their own built-in echo cancellation. * Audio that's clear even in the presence of background noise, and different people at different distances from the microphone. * Users behind every type of misconfigured firewall you can imagine. * Roaming between different Wifi access points, and between wifi and cell data while on a call (including links with no connectivity sometimes) * Never (or almost never) forcing a user to update their software at the moment they're trying to join an important meeting or job interview. * Update support (or long-term compatibility) for users who don't have administrator rights. * Graceful recovery if the user sleeps then resumes their device. * Screen sharing that retains good readability, even if a user has unwisely made the text on their presentation a bit small. * Screen sharing of Youtube videos without making them blurry or choppy, even if they're embedded in presentations. * CPU and battery efficiency. * Free of charge * All the above on iOS, Android, Windows, Mac, Linux and WebRTC.
- Loughla 7y ago>* Free of charge It seems like, in the current use case, this one isn't as important? Institutions would pay for something that does everything else really well. Source: All the paid accounts my institution shelled out for on Zoom in our transition to remote work. So I guess n=1.
- michaelt 7y agoThere are certainly features you can charge corporations for, yes. But Skype, Discord, Google Hangouts, Facetime and Whatsapp all have a generous free tier. I haven't tried Zoom or Webex but it looks like they do too.
- jfkebwjsbx 7y agoAll the hard bullets are already handled by existing math (codecs), protocols/libraries (reliable networking), operating systems (hardware support), etc., no? This is not to say it is easy at all, of course; there a thousand things to do to implement it, but I think other fields face similar constraints, like videogame engines and distributed simulations.