Comments (7)
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.
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.
Wops accidentlly submitted above comment before i was done writing... editing now :) ok done editing
from static-ffmpeg.
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.
Adding caching #253. Not as useful without more stages but much better than nothing
from static-ffmpeg.
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.
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)
- Inconsistent DNS resolution HOT 13
- Build fails HOT 3
- AC3 support? HOT 9
- License issue HOT 6
- Multi-arch build is currently failing HOT 1
- Build fails due to libass extraction HOT 2
- /checkelf: not found HOT 6
- Possibly use Dockerfile heredoc in the future
- Suggestion: using UPX to pack binaries HOT 2
- AOMediaCodec requires login HOT 6
- ENABLE_FDKAAC=1 not working HOT 3
- ffmpeg: error while loading shared libraries: libfontconfig.so.1: cannot open shared object file: No such file or directory HOT 5
- using existing packages? HOT 4
- --enable-libharfbuzz missing HOT 1
- tag 7.0 and master won't compile HOT 6
- platform tags missing HOT 4
- Add librsvg for SVG rasterization support HOT 12
- Help HOT 4
- OpenSSL issue with binary outside container (RedHat/Fedora specific) HOT 6
- [Bug] Custom font config in `/etc/fonts/conf.d` not working due to missing fontconfig binaries HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from static-ffmpeg.