Does storj even work for VIDEO STREAMING?

Do you have a link to a legal TOS document that would confirm this statement?

I won’t link the CF TOS directly here, but on the page under developer platform they say:

  1. Unlike most Cloudflare products, the Developer Platform can be used to host content.

But TBH, the CF terms are the worst I’ve ever seen, they’re so opaque, but when you ask team members of the R2 team or the people in charge of that product, the answer is, “Yes it’s not like the CDN cache product TOS”.

If you follow that twitter link, she is in charge of the developer platform, that developer was using large amounts of R2 + CDN egress for free, accidentally had his account flagged because he was using CDN cache, and the ban was lifted (albeit slowly) after someone at CF was able to note he was in fact using the R2 developer platform (paid).

CF needs to update it’s terms, but the CF terms have always sucked, because I think they like a wide legal net.

Like you literally need to ask lol Must be an open secret. But value, very good.


1 Like

Just want to throw out that I’m enjoying this thread and learning a lot (while also being very overwhelmed). I don’t understand the technical bits, but it’s nice to see this discussion happening. It’s helped me realize I’m not alone in being unable to use Storj for streaming.

I previously just chalked it up to having poor Internet speeds and moved on with my life.

I got started with Storj to share work-in-progress videos/animations with a client but ended up resorting to just uploading to YouTube (and leaving it unlisted/private), because Storj couldn’t handle streaming. Delays were too long, and with my 10-30+ GB files, it probably wouldn’ve been faster to ship them a hard drive than wait for it to play.

Uploading also takes longer (than Drive, for example), though I imagine this wouldn’t be an issue if my upload speed wasn’t terrible to begin with.

I’m still using Storj for backup of project and media files (and just started exploring using it for some Plex stuff), but (unfortunately) I’m stuck resorting to YouTube, Google Drive, etc for sharing videos with clients/friends.

I’m excited to follow along on this thread. Hopefully it can all continue to be productive and insightful!

2 Likes

Please test the following links are report how the files stream for you. Please also note your location if you experience any issues. Happy to do a support session to explore any issues.

1080p - Caminandes_3_Llamigos_2016_1080p.mp4 | Storj DCS

4k - Big Buck Bunny Demo.mp4 | Storj DCS

5 Likes

Hello
I am in Estonia, 1080 is loading OK.
But 4k lagging time to time.

1 Like

4K for me streams instantly no lag at all, I use Plex and jellyfin for streaming and storj handles it well enough where there is no buffering which is good enough for me.

Yeah, they work fine, but are inferior performance-wise (buffering, seeking) to YouTube and centralized alternatives. Which is fine, but as the OP states, clashes with the marketing at least to some degree. In Storj’s defence, all the decentralized video platforms I’ve tried (Odyssey/LBRY, Theta, and so on) are noticeably slower than YouTube/etc.

Centralization has its advantages in some areas, for sure – especially for those of us with sub-optimal Internet speeds.

I’ll continue using Storj whenever it makes sense for me – probably with smaller files that start playback quicker and don’t take forever to upload – but for longer projects, I’ll have to resort to other options (for now, at least:).

Just to note for @wampastompa, these are full container files, MP4 files without being transcoded to streaming formats. You shouldn’t send a video file like this to a client, unless you want them to DOWNLOAD the entire file, if you can, break them into a HLS beforehand or a dash files so that each few seconds is an individual file of MB, you can use a service such as coconut.co (paid), or ffpmeg locally (free). Then latency will be the only factor in STORJ, which is what is happening, the latency of the client to start is the slowest part, once the download happens, I think the speed is OK.

Here is my Big Buck Bunny HLS stream ← Check if this Storj HLS delivery is faster.

See if this is faster to load than the MP4, if it isn’t than latency of load is actually the issue and could be fixed, but technically probably very difficult too, with a CDN the network knows, “Oh you’re in Malaysia, here’s a CDN in Malaysia”.

You couldn’t compare Storj to Google CDN, by god it’s so expensive :crazy_face: but it’s so incredibly fast, because Google has agreements with upstream providers in every country to have ultra fast interconnect with their internet exchanges, plus they have pops everywhere & servers that are brand new, fine tuned, and over engineered for video.

Google CDN is really, a total ripoff, for egress.

In most cases, I think from reading the comments, it’s the handshake (response time) from the server that is the issue & with video, 1-2 seconds is so noticable in 2022 that it will definitely feel, slow.

Screenshot 2023-01-14 at 8.06.43 am

1 Like

I think this is unrealistic to expect, Even locally It takes this long to pull a video from my network everything would need to be cached to expect less then 1sec load times…

1 Like

I tried the 1080p video, it works fine, but there is the delay of 1.5 seconds, which may be too much for some.

However, there is another problem - the video is provided as a single large file, not HLS. It works just fine when the internet connection is good, but it would fail if the internet connection was marginal (say, 4G). HLS is better in this regard since the small segments get downloaded in separate connections, it is less likely for the download to stop because of packet loss.

Of course, the video could be uploaded as HLS segments.

Storj also needs to update their node T&C, so I guess both are on par in terms of updates of legalese (-: Thank you for pointing out this note. I’m rather conservative in terms of legalese, so I’ll wait until CloudFlare actually explicitly puts the terms, but it’s good to know that they at least attempt to.

I wonder how much of a difference is the way the uploader uploads the contents and location differences between the uploader, the gateway and the downloader.

In the scenario where the uploader uses an MT gateway, I assume the chunks will mostly be stored closed to the MT gateway, and hence users far from the gateway will experience bigger latency.

In the scenario where the uploader uses libuplink or a local gateway, I assume the chunks will mostly be stored close to the uploader, and hence users far from the uploader will experience bigger latency.

A true CDN that aims to be fast for downloads around the world would probably actually try to mitigate the effect of upload races?

BTW: I only note what I see, people can make their own conclusions on whether response times are important for their video delivery or not. Generally I just follow the data released by Netflix, Youtube or Twitch as to what their metrics are for performance/watch time.

It’s absolutely not unrealistic to expect, a CDN for video can get first response time under 100ms. Youtube when I test it can most of the time be around 30ms on it’s best days. Which is standard for CDN response times. https://www.cdnperf.com/

That is server response time, not video start time, video start time will normally be 2-3x the server response time, if a server can respond in 30ms, than 120ms is generally when the first fragment will start.

Such as with this storj reply, the 2.5 seconds become 8-9 seconds. The “waiting for server response” is the most important.
Screenshot 2023-01-14 at 9.51.48 am

I am going to upload a HLS test of the big buck bunny to google cloud CDN also, just having a CORS issue with it.

Here is just an MP4 on google cloud CDN.
[Direct from a Google Bucket without CDN] ← currently busted, thanks google…
(https://storage.googleapis.com/testbbbvideo/bbb/bbb.mp4)

Response times are faster for HLS/DASH as the payload is not the container overhead + the file size is a few MB.

I wouldn’t recommend Google CDN unless you like burning money, cause it’s extremely expensive.

But you cant really compare storj to companies that have massive servers around the world that are equally powerful and optimized to do that exact thing. Netflix has been working on this for more 10 years for streaming they used to use CDN which wasnt fast enough then moved to openconnect which they designed for netflix… Storj wasnt going for streaming when they first released and its capable of streaming not the fastest because theres much work to do before it can even compare to netflix or youtube as a streaming service.
But the problem is youtube and netflix do not use the biggest video files for streaming, I host my full 80gig rips on storj then stream it though my plex which is transcoded by my server and it works very well.

But I do find it very interesting finding way to actually speed up the streaming process if you have better ways to do it im very curious how you can reencode movies to make it even faster to stream.

1 Like

For personal use I think you would be fine, when paying as a business that makes money on it’s watch time or response times, than that’s different.

How Storj Built the Fastest and Lowest Cost Cloud Video Sharing Option
Article

TBH, I can, because of the articles written by Storj about being the fastest (Of which I came from out of curiousity) & because if performance isn’t the benchmark for video than what is? A CDN is a CDN.

Storj Has the Fastest Video File Sharing and the Lowest Cost

Maybe its miss understanding or miss writen on there part, Because when I look at this it isnt based on a streaming service but as a video sharing ability.
There not saying there the fastest streaming service but the fastest video sharing for the price.
Cause from my experience it could be alot faster if you were gonna use it for streaming. Its not easy to get the fastest speeds when using user friendly ways.

I better not answer that with dollars facts of which companies would beat that, because if i was to use another service that I know is faster, it would cost me $1.2USD to deliver that without an egress limit. The same on storj would be $7/TB.

I honestly think, if others have noted performance times, and I know I can prove it (I mean, you’ve seen google cloud, cloudflare & bunny in here, as well as I noted how to play HLS via Storj when the team didn’t know), making statements about being fastest/cheapest is just a better idea to change that terminology, to most distributed, or most decentralised. But fastest/cheapest, it is not, and being the cheapest, isn’t a metric, being fastest in a CDN is generally always the metric.

:face_with_monocle:

I dont disagree with you they really shouldnt claim something less they have 100% proof to back it up. I cant even upload to storj half the time at the fastest speeds my internet can handle because its alot more complicated.
When i first joined storj there was no backed data about a streaming services one thing I do know is it can be fast if used a different way then I use it. The thing is you just cant become a streaming serviced without alot of powerful hardware, I know half of the people on storj hosting nodes dont have high end hardware me included because im cheap and I like raspberry pis and SOC hardware.
If there was a second storagenode people could run only on high end hardware/internet speeds they could easily match what they claim for streaming.

Yeah, if Storj had a few distributed main nodes, and then handed off the other delivery to the community nodes, that might be a way to make that first time to byte response time faster.

I am still playing with it, including delivering from a CDN of the first few TS files then using storj to pull the rest. But I dunno, that’s generally not a great idea in practice, sorta like loading a website with heaps of different JS files from different CDN urls.

Time will tell though storj are making strives to make improvements to the service which they have I wasnt able to stream movies from them 2 years ago and now I am, Its been a ride and a journey with them and hopefully someone with good ideas such as yourself can help improve on what it is today.

3 Likes

Absolutely, I think partly decentralised + decentralised is a good option.

For future, my benchmark tests are below & if can make any difference I will update:

h264
CDN delivered 1min of Big Buck Bunny in 4k h264
Stroj file of same 1 minute Big Buck Bunny in 4k h264

h265 (1/3rd the size)
4K 30 seconds Big Buck Bunny H265 CDN
4K 30 seconds Big Buck Bunny H265 Storj

Goal is to get Storj (Grey) to match the CDN (Green) Lower is better.
h264

h265 (requires Chrome, or VLC)

Storj files deliver from computers HDD, CDN delivers from cached server from an interconnect exchange.

Encoding H265 preset

./ffmpeg -i input.mp4 -c:v libx265 -preset ultrafast -crf 28 -c:a aac -b:a 250k output.mp4
2 Likes