Git Product home page Git Product logo

Comments (7)

wader avatar wader commented on July 24, 2024 1

Ok, will probably sync some other things from your fork when i get time, thanks again for working on it! let's keep in touch!

from static-ffmpeg.

wader avatar wader commented on July 24, 2024

After some tweaks and enabling caching, I was able to get the build down to 10 minutes for an added library (libsnappy) and 1 minute for non-Dockerfile changes. Updating x265 took about 17 minutes. I think this is the way to go for speed.

Interesting, thanks for trying things out!

What I did to my repo:

  • Move most ARGs to the top

It actually used to be like that but at some point i decided it was nice to not spread things out if possible.

  • Inherit ARGs only where needed
  • Enable caching for GitHub actions docker builds

This i should really do. Do you know what limits there are on cache sizes? some expire time etc? thinking if there are some limits that would make caching not as useful in practice.

  • Parallelize the builds by breaking them up into multi-stage

Is nice but as i mentioned earlier not sure yet what i think about the increased complexity of the Dockerfile.

  • Use COPY command to copy only files needed from previous stages
  • Added several new libraries

Haven't used ladspa and frei0r myself, they seem to use .so files? do you know if building with musl libc could make this a problem? are glibc built plugins compatible?

Noticed libcaca was removed? i remember there was some x11 issue etc?

libvo-amrwbenc and snappy would be nice to add

About installing alpine package or build from source: I've chosen to built from source if the library has updates for features or security, especially decoders, that would take time to end up in alpine. Otherwise also if there are some other issue lik drags in deps we don't want or not built with optimisation/hardening. But i don't follow any strict rules.

from static-ffmpeg.

wader avatar wader commented on July 24, 2024

Wops accidentlly submitted above comment before i was done writing... editing now :) ok done editing

from static-ffmpeg.

binoculars avatar binoculars commented on July 24, 2024

The cache limits for gha are currently 10 GB and 7 days which seems pretty reasonable.

Not sure about the .so files—I haven’t tested these features yet, although I had frei0r in an old build.

Yes libcaca failed on the build but not configure, so I tried pushing that while testing it failed so I had to remove it.

from static-ffmpeg.

wader avatar wader commented on July 24, 2024

Adding caching #253. Not as useful without more stages but much better than nothing

from static-ffmpeg.

wader avatar wader commented on July 24, 2024

BTW know if there are any security concern with using a shared cache between PR and other builds? if content addressable i would guess not?

from static-ffmpeg.

binoculars avatar binoculars commented on July 24, 2024

Not that I'm aware of. Works like a charm if you only build master branch, but I'm just too paranoid to let it build without a manual review first.

from static-ffmpeg.

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.