I'm looking to host videos that are around 15-30 minutes long on my website and was wondering if using AWS S3 along with CloudFront is a good approach. I've never used AWS for video hosting before since I typically rely on Vimeo, but my new app is fully built on AWS. Can I just use the video URLs in my frontend app and make it work? I'm not very experienced in video streaming; I believe streaming should be done in chunks instead of loading the entire video first. Does using CloudFront take care of that? Also, is this setup cost-effective for my app, which has about 500 users? Is this a viable solution?
4 Answers
I tried AWS for my video streaming platform back in 2014, but it became way too expensive and slow due to the time needed for encoding multiple bitrates. I switched to Mux, which has better pricing and faster processing. If you're currently using Vimeo, I'd suggest sticking with it. Just because your app is on AWS doesn't mean you need to migrate your video hosting there; it might actually save you some headaches.
You might want to consider other services that offer lower bandwidth costs compared to AWS. Hosting video on AWS can be significantly more expensive—sometimes 5 to 10 times what competitors might charge, even with CloudFront caching.
Using S3 and CloudFront for hosting your videos can work well, especially if you're not looking for advanced features like transcoding or DRM. It's pretty straightforward—just upload your MP4 files to S3 and link them via CloudFront. You'll get chunked streaming handled automatically, so users can start watching without waiting for the entire video to load. Just keep an eye on costs, as AWS can get pricey, especially if your traffic increases in the future.
I only want to upload standard MP4 or WebM files for playback.
Hot take: why not build a WebRTC torrent client? Let your users upload videos directly! 😂 Check out webtorrent.io for more info.
Does that still apply if I use CloudFront to cache and deliver the videos?