Video editing and animation can be very taxing on a PC. Can IPFS create a decentralized video editor that distributes the processing power across different peers?
If the video editor is online the tools and effects would be distributed among peers through seeding.
Let’s say there is a video hosting site that uses IPFS. If I wanted to edit someone’s video a copy would be made and I would use the browser to edit it. One peer would host a colour correction tool. Another peer would have an audio editing tool. Other peers would host filters and effects.
If I create a filter or effect that is say 100 MB, I would upload it to a main server. If five peers want to use the effect, one peer would download it and seed it to the other four peers. Once the five peers log out of the website the filter would go back to the main server.
This could also be used for video games too. The site can host a 3d modelling program and users would upload tools to make assets and games. One peer would download the program tools and seed it to other peers. If one peer wants to edit a game that is on the site and three peers want to play it, the one peer would download the game in chunks with the 3d modelling tools, make the edits and seed the unused game chunks to the three other peers.
If a new game is made from old assets, you could see where the assets came from.
Cryptocurrencies can be thrown in as well. If I edit someone’s game or video, make something new and earn cryptocurrency, the original creator can get some cryptocurrency as a sort of royalty.
Love the idea of decentralized computing but that’s not something IPFS can do now.
you’re right, it’ll be interesting to see what IPFS grows into. One thing that I would love to see is wifi routers with hard drive space. Hosting a website or storing data for filecoin might be unstable if we use PCs that have to be shut down, but a wifi router with some hard drive space would be on all the time. When the hard drive is about to fail a red alert light would blink, or if it’s part of the internet of things the router would order a new drive from amazon. There are a lot of possibilities.
If my ISP was down my neighbours would seed website data from their router drives to my router drive.
@ricebox, the project I am working on is tending toward finding real solutions somewhat along the lines of the ideas you have presented here. At first we will be working on solving distributed transcoding / rendering on a cluster-group of trusted peers. When that is working, we will work our way backwards in the pipeline - possibly making a proxy-based NLE using a bridge to MELT. There are, however, real limits to what can be accomplished in the browser. Some examples:
I don’t know if you have ever tried to framesync audio to specific points in a timecode using javascript with less than 8ms latency - but I can tell you firsthand that it isn’t easy (or anything that even approaches native code speed). Or, how do you deal with the overhead of having perhaps dozens (or hundreds) of files open and perhaps a few WebGL shaders as effect filters on top of them, some animated text flying on a canvas here and there… You will struggle to get anything approximating object tracking working, even though you can get something like openCV to work, I really doubt your ServiceWorker is going to be able to keep up. Keying might be a bit better, but are you going to stay in Rec709 color space? Speaking of which, what about grading? Do you proxy-render to 720pYUV420 for the editors, and somehow figure out a good way of managing RAW gamuts and LUTs? I could go on and on, but I just wanted to make the point:
There are a lot of REALLY hard problems involved in Video Editing generally, and suitably treating them in the browser is crazy talk. But we’re going to try to do some of it anyway. You can read more about what we are doing here: Millions of pins in a transient ipfs-cluster