Oddbean new post about | logout
 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 
 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 
  @Kieran 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? 
 @HiveTalk is great for streaming or screen sharing 
 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! @The Fishcake🐶🐾 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 @The Fishcake🐶🐾 ? 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 
 💐💐💐 
 cant wait for this to become a reality