Those on 3g will have to wait ages for the video to buffer. Those on an old device won't be able to play it at all if you used new codecs. Users won't be able to select playback quality, and on a slow connection, they'll get endless buffering.
You'll have to come up with your own systems for counting how many people viewed the video and which bits they bailed out on. You'll have to reinvent caption translations and go to extra effort to get captions working at all.
Self hosted videos have mostly died for the above reasons.
This advice is pretty stale: 3G is rather old by now – 4G came out in 2009 – and unless you’re still supporting IE8 HTML5 makes it easy to let the browser select from multiple sources (subtitles have similarly had wide support for at least half a decade). Properly hinted video will start playing pretty quickly — certainly not massively slower than someone with 3G on an old device is going to experience everywhere else, especially since that old device isn’t going to pick the 4K version anyway.
When traveling to places with 4G or LTE coverage I'm often downgraded to 3G or edge. My parents' home has mostly 2G/edge connectivity, with some spotty 3G coverage on the second floor. They're "only" on the outskirts of a greater metropolitan area.
Just because some tech is old doesn't mean it's not very much still relevant.
The point is with HLS or DASH and CloudFlare you can provide the exact same experience to all your users. You can easily automate the process, which I've done. All other problems are already solved by player software like Clappr, JWPlayer, VideoJS, etc. They all use HLS.js and Dash.js in the background...
Otherwise, I'll take a look into S3/CloudFront.
Didn't even think that far, lol. Thanks for the info!