We already have everything we need for decentralized video hosting. We just need upload services to support variable bitrate streaming and we can improve video playback performance in nostr clients by 100x

Centralization of video has always been a terrible idea, but we have the tech to fix it. nostr:note16s3hldsrlza3ytysr3jfmzrn6wgjtkryplrh8tylq72flva3sr4s05u79x

Reply to this note

Please Login to reply.

Discussion

This

s,variable bitrate streaming,adaptive bitrate streaming

Blossom is a great starting point for transitioning away from centralized URLs on mobile.

Let me know when we have a decentralized YouTube!

Shirley the relay network will speed this up, it’s just a matter of time and attention

nostr:npub1v0lxxxxutpvrelsksy8cdhgfux9l6a42hsj2qzquu2zk7vc9qnkszrqj49 has been leading us out of this darkness

Do you recommend any streaming clients? Zap Stream? Flare? Corny Chat? Any others I haven't yet heard of?

nostr:npub1z0lcg9p2v5nzg5fycxq0k56ze6snp42clmrafzqpn5w6u74v5x9q708ldk is great for streaming or screen sharing

Is this an unbiased recommendation?

of course! *wink*

I hope we'll see this evolve around nostr. Kieran is already looking into supporting multi-track streaming on Zapstream. It's a new feature in the latest OBS build but the server needs to support enhanced rtmp.

Great to hear! nostr:npub137c5pd8gmhhe0njtsgwjgunc5xjr2vmzvglkgqs5sjeh972gqqxqjak37w was looking into adding it directly on nostr.build mp4s so that clients like Damus could support it automatically without any code changes somehow

SRT is the better option. Open source supports encryption and dynamically adjusts bit rate. Also supported by OBS.

zap.stream https://zap.stream/ obviously still in its infancy but i found it easy to use. im not sure why more arent using it, especially those who complain about youtube. you can really just start by uploading / streaming to both with little bother.

Damus supports HLS streams, you can just paste a m3u8 link, but yeah we don’t have any deep integrations with specific implementations yet

You can have the tech but do you have the means to make content creators profit with it?

Zaps!

I don't think they can take what they take with ads but it's something indeed

And that will be amazing.

Right now, I self host all of my own video that I share here… And I’m fine with that, but I would not consider an optimal solution..

Same, agree it’s not optimal in the sense not everyone can do it, but there can be many video hosting providers.

It’s at least nice that we can even do it. X forces me to upload to their servers for inline video :/

Am I sensing NIP-?? for video notes incoming? The only thing with video is that at the larger data size, some kind of financials need to be figured out for the economics to make sense.

Not sure if it needs to be a nip, its already supported in damus in the sense it can load HLS manifests if you paste a link to the file:

https://cph-p2p-msl.akamaized.net/hls/live/2000341/test/master.m3u8

We just need to make it easier to share these within clients. Maybe we could have a way to transcode video locally and upload multiple versions for the manifest nostr:npub137c5pd8gmhhe0njtsgwjgunc5xjr2vmzvglkgqs5sjeh972gqqxqjak37w ? I don’t think we have an upload scheme for this though.

Multi-file upload is a hard one

Tar uploads šŸ˜…

We would probably want to start uploading right away though, so probably a bad approach

Tar is a streaming format.

But why not multiple parallel requests

From what I can tell this is no standard protocol for HLS uploads. Maybe we should spec that šŸ¤” this would save the media hosts from having to do all the transcoding.

I’m actually surprised there isn’t anything like this already.

Kinda related - Twitch is starting to push local transcoding for streamers.

https://blog.twitch.tv/en/2024/01/08/introducing-the-enhanced-broadcasting-beta/

I was googling this and couldn't find anything. interesting! thank you.

I think it’ll be easier for all of us if you just uploaded a semi-optimized media and media host do all the VBR transcoding and packaging for distribution. While transcoding is ongoing, we can serve the initially uploaded video, and the redirect to m3u8 manifest when it’s done 🐶🐾🫔

the m3u8 could be dynamically updated with transcoded parts and the rest just referring to the original file, no?

that would be interesting. imagine doing a really quick initial upload using the lowest quality, then higher quality versions could be uploaded in the background *after* the note as been posted.

I see no reason this couldn’t work. m3u8 is just a metadata file pointing to other files.

Yes 🐶🐾🫔

that works for me too, I was just trying to help the process since I don't think the redirect is working yet right? cloud transcoding pipelines are complex and I was just trying to make it easier for hosts by pushing all the compute to the edge.

Amethyst has been playing around with custom media servers for uploads. It might be interesting to have specialized video media servers that can take zaps for storage costs.

As long as Zaps mainly reach the original creator, and we have some tools to help the creator seamlessly also fund their media storage. Then it would be super easy to use even for non techies.

What… what in the hell am I watching? 🤣

I really don’t know

BitTorrent…

Bittorrent is terrible for video streaming :/

The problem is peer discovery really. DHT sucks.

You could implement a peer tracker using Nostr. The demo on WebTorrent uses a tracker and that works pretty fast for me, so not sure why we can’t do that over Nostr

Otherwise it has everything you need: selective downloading of segments, hash verification, wtc

Also it supports HTTP sources.

All that a tracker has to do is to map infohashes to a list of IP:ports for peers. And nostr events are perfect for that

I hope we can do this soon. Paying in sats for streaming is a great feature. Needs to be integrated into clients

šŸ’šŸ’šŸ’

we have the technology.

nostr:note17uy7n934npnd7800q0vmz4zvghh2e9dv8vgvuuayutfnm3l2j35q2n2qy5

cant wait for this to become a reality