So, to briefly summarize my situation:<p>I'm the only tech person employed in a non-tech company in a strictly non-tech business area. Under my guidance we've started to branch our business into web educational content, selling online courses and webinars.<p>It's all been fine and dandy, our experiments have shown that it's worth continuing but now I got to figure out how we're going to host our video content and serve it. Previously we just used private YouTube embeds in our customer-facing LMS, but with the ads on YouTube, the user experience could be better. I'm also not 100% sure it's according to YouTube's TOS.<p>We would've used Vimeo, but their new plans are simply not viable. The monthly video upload limits are too limiting and while we won't hit the 2TB monthly transfer bandwidth now, it'll become an issue in the next months.<p>I've already built ourselves a nifty little website where we can sell and fulfil customer orders and create private web pages with the video content embedded with an expiration date and it runs basically for free on Netlify.<p>What I'm wondering is, where the heck should we store the videos so our customers can stream them? Ideally, they wouldn't be too easy to download but our customers are also pretty non-tech so piracy isn't really something we need to worry about.<p>Currently I'm weighing my options between something like Streamable, renting some VPS and throwing them all into a webserver and just hotlinking the vids or maybe something like Cloudflare's Stream (which is currently a bit complex for me to understand).<p>I'm mostly an UX designer who likes to tinker and I do run my own home server but I'm not a great developer so stuff like managing content on AWS through the CLI and uploading files via API calls seems pretty daunting.<p>Any advice? I'm trying to get the best bang for our buck.<p>Currently we have approximately 200 hours of 1080p video content (some 150GB) and next year it'll be somewhere around double or triple that. I guess our average monthly traffic would be 1500-2000 minutes a month.
I'd be tempted to try and get as simple a solution as possible. Have you looked at Rumble?<p>They have a $100 per month option that should more than cover your needs. While they have a 4TB transfer limit I think they have options to extend that. But if your are only just hitting the 2TB limit this might work for a while?
<a href="https://www.rumbleplayer.com/enterprise-pricing.html" rel="nofollow">https://www.rumbleplayer.com/enterprise-pricing.html</a><p>You can always go free if you don't mind some ads but it sounds like that is not an option.<p>Linus Media Group also has a service <a href="https://www.floatplane.com/" rel="nofollow">https://www.floatplane.com/</a><p>I think that is aimed at content creators. But It could be worth contacting them.<p>Then if you want to do a little more development I'd look into Backblaze. <a href="https://www.backblaze.com/blog/roll-camera-streaming-media-from-backblaze-b2/" rel="nofollow">https://www.backblaze.com/blog/roll-camera-streaming-media-f...</a>
<i>...but I'm not a great developer</i><p>Yet*. You already shipped something which is more than many people can say. I understand not wanting to be a developer, I had similar thoughts for a long time, but knowing the tools and concepts developers use is helpful. Especially in situations like this. Also, it's usually not as complex as it seems from the outside. I'll be the first to admit: I spent a long time thinking I wasn't "smart enough" to do it, until I did it. If you'd like any introductory resources on how APIs work, how they can help you, how to use them, etc, let me know.<p>Pep talk aside I recommend price matching several different platforms:<p>- AWS Elemental<p>- Brightcove<p>- Bitmovin<p>- Cloudflare Stream (as mentioned)<p>- Cloudinary<p>- Mux[0]<p>- Wowza<p>- many, many others<p>The options above will give you the most control over the process, they'll host and handle streaming/delivery to any variety of users. If you'd like a managed offering you could try something like Uscreen.<p>Right now it seems like you're in the "get it to work" stage but at some point, you might want to integrate observability or data monitoring to track your user's experience, video performance, engagement, and other items. This is where doing a little bit of research gets you a ton of value further down the line. I recommend looking up terms like "QoE" and "QoS"[1] to get some more context.<p>[0]: for some context on video generally - <a href="https://howvideo.works" rel="nofollow">https://howvideo.works</a><p>[1]: <a href="https://ottverse.com/beginners-guide-to-video-qoe-and-qos" rel="nofollow">https://ottverse.com/beginners-guide-to-video-qoe-and-qos</a>
What's complex to you about Cloudflare Stream? It looks like you upload a video and they give you an HTML embed for it.<p>With hundreds of GB of data and TBs of traffic, it sounds to me like you're in the range where it's worth doing it right, handling different encodings and resolutions for different devices, etc. It sounds like Cloudflare Stream will do that for you; I'm not sure how you would configure a VPS to do the same thing.
Technical solutions exist and should be implemented by experienced people, but if it is central to your business model to sell video streams, you must absolutely understand the risks and challenges <i>before</i> you start and need to protect against unexpected cost explosion.<p>In any case, you need throttling / DDOS protection or a similar mechanism that will stop video download when you get too many requests - this risk is very real and when you can not stop some bot downloading videos a trillion times you can be killed financially in one day.<p>This must be implemented in some hard technical limitation on the server / service provider site and should not be some soft agreement like e.g. "we will find a solution, just go ahead".<p>Also very important is to implement all video streaming costs in a pre-paid fashion - put the max amount of money you are ready to pay for monthly delivery into the account in advance, but make absolutely sure that delivery stops when that money is burned. It is better to be offline for some while (or deliver some reduced quality content that is much less traffic intensive) than to go broke in one night.<p>But you do not only have to prepare for abuse and errors, you also have to see that in the long run, when the number of subscribers get bigger and bigger, you need a good solution to guarantee that the ongoing downloads of (old) subscribers will not accumulate to astronomical numbers - we could speak of an "inverted long tail" here that will eat more and more money. Plan ahead!<p>There are many more problems with selling video content and this was just a small introduction, but contained the most important points.<p>Sometimes it turns out that it will be a much safer solution to NOT sell the video content but sell additional services around your videos - put your videos on YT, forget about all problems with video hosting and focus on selling many much less intense products and services, while your videos generate lots of subscribers, because you will never deliver to as many people as YT can.<p>Good luck!
Theres a great object storage company Storj.io[1] that has a 150gig free storage tier.<p>Been using it for small projects and its great. Simple dashboard, drag and drop and away ya go.<p>[1] <a href="https://www.storj.io/storj-home" rel="nofollow">https://www.storj.io/storj-home</a>
Have you looked at Bunny CDN? They seem to have very competitive pricing.<p><a href="https://bunny.net/stream/" rel="nofollow">https://bunny.net/stream/</a><p>(I'm not affiliated with them)
Maybe Azure Media Services? Can transcode and serve content etc.<p><a href="https://azure.microsoft.com/en-gb/products/media-services/#features" rel="nofollow">https://azure.microsoft.com/en-gb/products/media-services/#f...</a><p><a href="https://azure.microsoft.com/en-gb/products/media-services/live-on-demand/#security" rel="nofollow">https://azure.microsoft.com/en-gb/products/media-services/li...</a>
Plenty of free options now: <a href="https://github.com/topics/video-streaming?l=c%2B%2B" rel="nofollow">https://github.com/topics/video-streaming?l=c%2B%2B</a>
(C++)<p>15 years ago, when we used this, we used libs from live555. but now vlc and ffserver have it also (RTSP, RTMP, WebRTC). Just don't use TCP please (as icecast did)
You'll likely need to get some custom development done to avoid ongoing subscription costs in favor of a larger up-front cost. I've done this type of thing a few times in my career and have found that while platforms like Vimeo and Streamable can be nice and cost effective early on, it's probably cheaper long-term to have something bespoke created.
aamoscodes had some good suggestions, and bunny.net would also work as well.<p>If you trust your VPS capabilities, you could also run a Peertube instance. It should have the embedding features you want. However, I'm not sure what sort of performance you are going to want on the VPS to make it close to something like Youtube. (How many TB of video do you have? How spread out is that 4 TB of stream data? If you do run it, I'd suggest running it through Cloudron to simplify security and backups (it's very good at that).