5 ms·
Having had experience in streaming to many thousands of users myself I think what you're doing here is certainly interesting - having taken a look at your servi
by tcd 9y ago
Having had experience in streaming to many thousands of users myself I think what you're doing here is certainly interesting - having taken a look at your service it seems likely you're using nginx and possibly RTMP module? At least that's what I've used for HLS streaming in the past (which works really well). It's a shame you only support HLS - which famously chrome doesn't support on desktop, so this doesn't really solve the whole problem with multiple codecs and maximising cross-browser support, which relies on MSE at the moment to get HLS to work.
I also noticed in the m3u8 file there are multiple versions of your file depending on quality - it'd be nice to expose this via the player so I can select the quality I want to view it at - if I am bandwidth limited 480p may just be sufficient! Also with 4k and even 8k becoming ever popular, how do you plan on dealing with this?
I'm also intrigued about video storage - will you store videos forever? How will you handle storing multiple qualities? Is there server redundancy? I noticed your video is streaming via mux.com for the m3u8 and fastly CDN for the TS fragments themselves - In theory there's nothing stopping anyone using this as a rather nice transcoding service - POST a video, and download the m3u8 file to gather the .TS fragments and join them together for a nicely transcoded video, you should also allow people to download them and host it themselves, it's not like you can stop that anyway.
Will be intriguing to see how this develops, it's a nice idea, but you're soon going to figure out _why_ video is hard - making this was for sure the "easier" part, keeping it growing/sustainable is where you are going to struggle once you are dealing with multiple PB of data storage and streaming, it's the same reason Youtube isn't profitable.
Relying on a CDN like fastly is of course possibly cost efficient, but I worry if they decide to kick you off what your plan is, there's absolutely no way in hell you could _ever_ serve the video fragments yourself so whilst you're solved (possibly) one problem, you haven't really invented anything revolutionary.
I am also interested how you're going to stop people hotlinking the videos themselves - this is something I tried to prevent _really_ _really_ hard - but with m3u8 it's simply not possible (well, it is kind of if you use a query string with an expiration token, but that has its own problems).
As I said, I could just link the CDN m3u8, for example, downloading:
https://stream.mux.com/SdLAIpK2YUpIGOgVosm8Hyv6F7t01RadXYZWFuAd8YEh8m2gLrF8XZ2UzSKPWvy00iWOl00OlqxPSE/rendition.m3u8 https://stream.mux.com/SdLAIpK2YUpIGOgVosm8Hyv6F7t01RadXYZWF...
tells me all the .ts files fastly is using - why bother with YOU and not just fastly themselves since THEY are the ones hosting your video.
- dasil003 9y ago> Will be intriguing to see how this develops, it's a nice idea, but you're soon going to figure out _why_ video is hard You might want to take a look at the Team page before saying silly things like this.
- tcd 9y agoThanks for adding nothing to the discussion - the team page tells me nothing about the challenges they're going to face, and how they're going to overcome them. Even Google, struggles, since they've been running Youtube at a loss since 2005. Streaming video is ridiculously expensive, and they are relying on CDNs, who can give them the boot at _any_ time, and I doubt they have fallbacks beyond those that have partnered with them. It'd be no different to akamai hosting the video (which I believe Apple uses IIRC, or some other big names).
- jon_dahl 9y agoI'm curious about your comments on CDNs. Have you had a CDN boot you first-hand (or seen it happen second-hand)? If so, what were the circumstances? Video delivery is a huge part of every CDN's business, and almost everyone doing video streaming relies on third-party CDNs. (Except for the biggest operations like Twitch and Google that have their own peering relationships and caching infrastructure.)
- tcd 9y agoThe only one was Cloudflare on another project (file hosting) - and being fair, we did do 20tb of transfer in a single month on the free tier, which they weren't so pleased about :P. that really crippled the website and we struggled to run the service after that point (oddly enough, going from their CDN and network to our own which could barely squeeze past 1gbps wasn't ideal). It's more the longer term potential - businesses change, or see valuable partners and may decide to react accordingly, I guess having many CDNs is the best approach and swapping them out on the fly. I do have other concerns, mainly about the pricing and how you plan to deal with things like hotlinking, taking a .m3u8 is super easy to abuse. You charge $780 for 416 days worth of streaming or in easier terms $1/12 hours of streaming so I wonder whether you will let people impose limits or what happens once those limits are reached. I could easily take someone elses m3u8 and let them run up the charges on your service whilst I get the wonderful video hosting for myself. I especially liked this part: "Please do not upload video, download the playable assets, and then delete video." You might as well offer that as a service since there's not really much you can do to prevent people using you as a transcode service directly (well, you can, but do you want to?)