Apr 27, 2021
Discovering (again) that Apple Bites!
In today's episode, Ben goes on a technical rant...
Chief Fan, Ben Scherrey, back with the latest and greatest news from BiggestFan Production's secret R&D lair in Bangkok. If you read last week's update you may recall that one of the challenges from our Beta test was Apple users not being able to view our content for the most part - especially on iOS. Wasn't a surprise to us because we hadn't spent any time on proprietary hardware support yet for our research & development. But we always knew supporting the Apple fan base would be important for our commercial launch and we'd had great success on Macs back in 2008-2010 for some real nice real-time audio technology we created for a client in our previous company. We figured there should be some proprietary or superior technical solution we needed to adapt knowing Apple is the leader and innovator for audio/video stuff, after all - they have complete control over their hardware giving them a clear edge over stuff that has to be multi-platform like Windows, Android, and Linux - right? WRONG WRONG WRONG - SO DANG WRONG!
Rotten Apple
As Amp and our crack team of mobile devs started digging deeper and deeper we discovered that Apple seems to have held, Safari, their web browser back compared to every other modern browser out there, including freaking Microsoft Edge, and has determined to keep it that way so as not to compete with installed apps from the iTunes store. Since 2013, Media Source Extensions, an open standard for allowing plugin-free web-based streaming media has been around and adopted by every single modern browser except iOS Safari. iOS Safari apparently has no other similar option to offer. Since iOS ONLY allows Safari based technology inside apps that use "web view" like a hybrid app, even some installed apps will be broken in this regard simply because Apple decided it should cripple not only its browser but any app that might want to use a browser feature on their device. Notice I say "their" device and not "your" device because the reality is you aren't allowed to own an Apple product. You may only borrow one if you are willing to pay an absurdly high fee and accept little or no effective warranty for that privilege. Otherwise you might do something that those folks who know better than you in Cupertino wouldn't think wise for you to do - like enjoy a real-time live performance with your friends on your - er... their mobile device!
Is Apple Why We Can't Have Nice Things?
"But hey - according to that link you just posted, Safari on OSX has MSE!" Er... not so fast buddy. Yeah it has it but it's broken beyond usability if you really try to put it to good use. Remember those black circles we encountered in the fan streams during our amazingly fun first beta event? Check the prior report if you didn't see it or don't remember. Well guess what.... Mac users. Yep - it all seemed to work just fine for a while (the bottom right circle has my wife and her friend until it freezes at 38:38) then just goes black - for the rest of the entire show. Unfortunately for the fans on their Macs, they don't see that their camera is no longer broadcasting. Every Mac user I'm aware of encountered this issue eventually. No way to detect it from our side. Sad. Apple didn't used to to have such contempt for their customers. Certainly not when Steve Wozniak was around, alas.
Technical Ramifications
Everyone when they think of streaming video (like your Netflix or video meeting apps) jumps straight to WebRTC. And iOS Safari (as well as every other working browser these days) certainly supports that. The "RTC" supposedly stands for "Real-Time Communication". But the name is a shameful LIE! :-) Web-RTC's definition of "real-time" is pretty awful and gets worse and worse over time. Almost every video and quite a number of audio streaming apps/services you encounter are running over WebRTC. This is generally adequate for pre-recorded highly optimized media like Netflix but abysmal for two-way communication. Imagine how it would be for the 50,000-way communication platform that we're building! Sadly the latency, which is the time delay between each little packet sample of video & audio, often extends beyond 4/10's of a second. That's a long time - and by no means "real-time". Worse yet - when the audio & video channels are managed separately, that latency increase over time impacts each channel at a different rate which means you'll see the audio and video get out of sync and eventually have to reload your browser. You may notice this especially when watching live videos on YouTube.
When you're in a two way conversation and one person is replying to another, that latency is effectively doubled. That's why when you're in a video conference in one of these meeting apps you will inevitably encounter the following scenario:
- two people start talking at the same time,
- those two people will realize they're talking over each other and pause,
- after the silence becomes uncomfortable, they will start talking over each other again at precisely the same instant,
- and then both will tell the other to go ahead until a random consensus is reached and one person proceeds.
- Bonus points if they can repeat the process twice before consensus!
It's actually more complicated than the TCP collision back-off protocol but humans carry it out on every web meeting I've ever been on with this high latency tech! I call this the "High Latency Web Meeting Shuffle Protocol". You won't encounter this on LiveJam or any of the other products (hint hint) being built using our low latency platform.
Sajal, our lead ops guy, just informs me that Family Guy documented this phenomenon back in 2018! You'd think someone would do better by now! (Well OK - we have!)
LiveJam requires the absolute lowest latency possible to be able to deliver the real feeling of being connected as if you were in the same room. This means we can't depend on WebRTC and have built our own proprietary protocol to get that data to all the parties as rapidly as possible with all kinds of tricks that comes from 10+ years of real experience doing actual real-time multi-way media. While depending on standard web technology still imposes some additional latency overheads, it's the quickest way to get a working product to market that doesn't require the friction of building, and then customer efforts to install, a native mobile application. So we are using the Media Source Extensions to route our content through web sockets and into the video player installed in your web browser for our 1st Generation protocol. We have at least 3 Generations of development architected and planned on our development roadmap - each one an improvement over the other, and Gen 1 already beats the pants off of anything else out there!
Native Mobile Moving Up on the Time Line?
So now we get to the good news, bad news part. In my last update I had expected we'd have iOS support for the next beta event (coming soon). That now seems incredibly unlikely. Also unlikely now is Apple investing in BiggestFan Productions but hey, there's probably some other folks who might wanna. :-) The good news, however, is this very likely shifts our development roadmap priorities around a bit so that a native mobile app and some of the Generation 2 protocol improvements are likely to arrive much sooner than planned. And not just for iOS - we will have a feature parity Android app released at the same time! This is not yet definitive as it's only in the last 72 hours that this direction has become more clearly defined but, unless some better surprise option shows up real quick, I don't see that we have much choice. Fortunately we know how to build really fast mobile apps that run across all the major platforms really well.
We're still working on scheduling the next beta event and it WILL have the new mobile web UX for you lucky Android owners out there. And just because Apple doesn't particularly appreciate their customers doesn't mean we feel the same way. I got my start in really learning how a computer works from the bottom up on an Apple ][ back in 1983. And now that it looks like we've gotta build some new iOS apps sooner than expected, we're getting Amp a shiny new Apple computer with the cool M1 ARM/GPU processor to give that a go (just as soon as it's available in Bangkok). What it means is that we'll all have access to the best real-time live media performances ever - coming soon from Biggest Fan Productions.
Stay tuned & jam on,
Ben Scherrey
Chief Fan