Giter Club home page Giter Club logo

Comments (3)

dustin avatar dustin commented on June 11, 2024 1

Yeah, I've not really spent too much time thinking about this. I do like having the cheap off-site backups. But I also have all of the data stored locally in cheap unreliable storage (ZFS on USB drives).

I wrote a FUSE filesystem that talks to the backend and provides a regular filesystem view of all of the data. My work Mac is using that along with Blackmagic Proxy Generator to generate proxies for all the downloaded media. I use the same filesystem in Davinci Resolve for editing, so it's basically my "local content" service at the moment with the files stored across multiple drives on multiple computers.

The only real missing link would be uploads. Right now, this software gets richer metadata presentation than GoPro cloud's own stuff, so creating some alternatives would be fairly straightforward. It's just ensuring local media is stored and recording where (S3, local, etc...).

from gopro.

tanmaytat11 avatar tanmaytat11 commented on June 11, 2024

Thanks for the answer. I will try using the FUSE system. How does the blackmagic proxy thing work, does it in your web ui serve the content through the downloaded source rather than gopro/aws servers? Yeah the upload thing would be the one missing, will try seeing if I can contribute but my experience with haskell just started with compiling this project itself and running it. I again want to thank you for providing this awesome set of tools. Is there a way to serve the local downloaded content as a streamable view, like I want to expose the downloads and use the metadata but the end user should be able to play the streams thus eliminating the need to hit the go pro servers. Right now I can see the files beautifully arranged but I am missing the direct play thing. Let me know if this can be added to the web ui and I will try to learn and add it if you can guide me a little. Thanks!

from gopro.

dustin avatar dustin commented on June 11, 2024

The BlackMagic Proxy Generator finds files in a tree of form some/path/something.mp4 and creates some/path/Proxy/something.mov with whatever proxy you configure (which might not be.mov, but the basic idea remains). Davinci Resolve will look for proxies under any media you import using this form.

The FUSE filesystem works by unioning a lot of local storage areas into a read-only view across all of them so accessing some path like /mnt/2023/10/wbmrENDdEymXM/GX011866.MP4 will pull resources from any of the places you have overlayed or dynamically pull blocks as needed from the cloud origin. Then it allows an overlay such that /mnt/2023/10/wbmrENDdEymXM/Proxy can be created and managed in a separate space. This also means I can overlay different types of proxies at different times.

I wrote more about it here: https://dustin.sallings.org/2023/10/16/goprofs.html

Regarding offline serving: The backend could also work with knowledge of a full backup tree and serve local content, but I don't actually download anything beyond the minimal here, so that wouldn't work for any of my use cases. The minimum size for my data (including their smaller versions for serving) is about 22TB for me. Just grabbing the mp4_low would only add about another 14GB to my storage which isn't too bad. It's the 2TB of high res proxies and another 2TB of other weird unknowns that would be a larger impact on me.

In any case, just having it be aware of a local tree with these options could be enough. The web site will already serve content.

from gopro.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.