PersonalHomePage's avatar

Ideas for starting a video streaming service

Hi, I'm trying to create a youtube like platform where content creators can upload their videos and I would host/stream them to users. To be frank I don't even know where to start with this. I'm looking at cloud providers and all the pricing is beyond my budget for now. I'm thinking of self hosting and instead to pay the ISP for the bandwidth while using some of my own hardware to process everything else. It's going to start as a solo operation and if things take off I'll be bringing on other people, but for now what's the best approach to keeping cost down to a minimum. I have my own balance loader and some high end desktops that I could use as servers to do rendering and other compute heavy process on. I would love to get any advice from the community on how best to approach this.

0 likes
4 replies
jlrdw's avatar

If you can search and find a fairly recent discussion, @martinbean went into great detail about this topic.

1 like
martinbean's avatar

@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.

PersonalHomePage's avatar

@martinbean apparently twitter hates me because I just found out my account is suspended for no apparent reason. After registering an account I've literally never gone on twitter again until you posted this link. Anyway... is there another way for me to reach out to you? I would be interested in joining the course and checking out what some of the challenges are for video streaming. I'm totally interested in the course and would love to join as soon as it's available. Please let me know!

Joshua5-alt's avatar

Totally get where you're coming from. Starting small with self-hosting using your own hardware is a smart move to cut costs early on. Just watch out for bandwidth spikes—they’ll hit your ISP bills hard if traffic grows. You could use something like Backblaze B2 for cheap storage and offload some delivery via a low-cost CDN.

If you ever plan to scale or monetize later, platforms like VPlayed offer white-label solutions with built-in hosting, transcoding, and revenue tools—saves a ton of dev time when things pick up. Best of luck with the launch!

Please or to participate in this conversation.