@personalhomepage It’s quite hard to build a video streaming website if you admittedly don’t know where to start. I’ve ran a video streaming platform for a few years now and, well, streaming video—especially high resolution and/or long videos—costs. There’s no way around that.
I originally started out using AWS for storing, transcoding, and delivering videos. In the beginning, I started with just single MP4 encodings of videos but the drawback of this is you get buffering if the user isn’t on a fast connection, and they were unprotected. I then started exploring AWS’s offerings for adaptive bitrate encodings, but it got far too costly and the wait time was not feasible at all. The service I was looking at, Elemental MediaConvert, creating encodings sequentially rather than in parallel. My customers upload longer-form video (up to a couple of hours long) so the wait time for a video was unbearable.
I did start exploring rolling my own solution using FFmpeg and an on-demand Fargate task but, again, this started eating my time. In the end, I decided to go all-in with Mux. I had the integration built within a couple of days and now how protected, multi-bitrate video streams, and also got a load of additional features that had been in my backlog for months such as viewing statistics and analytics that would have again taken me months (or longer) to build from scratch.
As you can see from above, there are a lot of things to consider with delivering video on the web:
- Storing videos
- Encoding videos in multiple bitrates for optimal playback
- Protected videos so they can’t be downloaded and played back on another website
- Delivering videos effectively so it’s not bringing your server down to a halt
If you’re really interested in building a video streaming website then I recently decided to distil my experience into a video course where I’ll build a subscription-based streaming website (similar to Netflix or even Laracasts) using Laravel, Mux, and Stripe. I recorded the first lesson this week, and looking at releasing in late May or early June. You can find more information about that in this Tweet. If it is something you’d be interested in, drop me a DM and I’ll give you a discount code when the course launches.