As a professional software engineer with a background in scalable web infrastructure...
The video player is done for you by the browser (unless you insist on dressing it up). Hosting a video is the same as hosting any file. If you've already got a website that can host content for billions, there's not a major problem other than storage and bandwidth costs.
You can say I don't know what I'm talking about until the cows come home, but all you've done is make completely unsubstantiated claims about how you can't possibly do this yourself, meanwhile I can say for a fact plenty of sites host their own video just fine.
Hosting billions of videos "on your own site" would be a bit silly though.
What's your HTML5 plan for when your site goes down because one of the videos a user uploads to your site goes viral and is receiving ~10,000 requests every second across 6 continents?
That's a trick (and a completely different) question from:
If I want to distribute billions of videos to billions of people on my own site, that’d be great, but my options are basically to pay Google, Amazon, or Microsoft for help.
If you assuming this is a load spike well above your maximum throughput, you just fall over. That's the reason the cloud took off in the first place; if you do it the old fashioned way, you can get overwhelmed and have no recourse but to fall over because you can't provision servers fast enough.
If this is a "normal" occurrence, you're probably talking about round-robin'd DNS distributing to (hopefully) the nearest data center where you have a load balancer, then that could hit another layer of load balancing on the machine or directly go to servers on the machine depending on how you have things setup, then that could hit several different designs of web server with their own quirks (asyncio -- non-preemptive multitasking --, threaded -- preemptive multitasking --, single threaded, or some mix thereof depending on your design -- pros and cons to all of them).
Those could do several things depending on how fast your data centers become consistent WRT uploaded videos. We'll just assume you already have a copy of the video in each regional data center. You fetch from there and serve the file, like any other file.
... or maybe you get really fancy and use WebRTC to get the files from clients already watching the video.
But please, add another surprise requirement and continue to strawman.
I don't understand this comment at all. Hosting your own video is actually super easy. HTML5 video is as simple as HTML5 images. It's just the cost factor.
You can do it all without the cloud as well, you just have to actually go buy the servers or rent them from traditional virtual private server hosts. Not everyone has gone to the cloud.
🙄
Ok I'm done conversing with you for real now I have a weekend to go have, cheers. Good luck with your budding CS career and your HTML5.