ffmpeg-headless: enable additional encoders#330056
ffmpeg-headless: enable additional encoders#330056Atemu merged 1 commit intoNixOS:stagingfrom eclairevoyant:ffmpeg-deps
Conversation
jopejoe1
left a comment
There was a problem hiding this comment.
Maybe even worth including aom and jxl seeing #330125 and looking at the mpv manual they are listed as supported formats for screenshots https://mpv.io/manual/master/#options-screenshot-format
|
jxl is too big (100 megs) |
ooff
mpv defaults to that one https://mpv.io/manual/master/#options-screenshot-avif-encoder |
right but that doesn't preclude using another av1 encoder (aom is slow so the default is probably suboptimal). anyway i'll take a look at closure size later |
Keep in mind that the purpose here is singular frames where iframe quality matters most and speed is almost secondary. The performance of either encoder in motion pictures has little relevance here. |
|
aom adds another 10 megs, up to you if you think it's worth it |
|
That sounds acceptable, especially considering that you likely already have libaom in your final closure via libavif. Searching around, I gathered from discussions that aom has greater compression efficiency for avif purposes and that SVT-AV1 has odd resolution and memory limitations. I have sadly not found any data on this despite my best efforts. |
|
added libaom, desc updated. |
Atemu
left a comment
There was a problem hiding this comment.
Could you add the PR message content to the commit message?
This adds some extremely helpful and popular encoders in by default: * openjpeg * celt * libwebp * libaom On the `master` branch, closure size for ffmpeg-headless went up 18.5 MiB. ``` $ nix store diff-closures nixpkgs#ffmpeg-headless^bin .#ffmpeg-headless^bin celt: ∅ → 0.11.3, +168.4 KiB ffmpeg-headless: +70.0 KiB giflib: ∅ → 5.2.2, +398.7 KiB lcms2: ∅ → 2.16, +466.2 KiB lerc: ∅ → 4.0.0, +840.2 KiB libaom: ∅ → 3.9.0, +8047.8 KiB libdeflate: ∅ → 1.20, +427.0 KiB libtiff: ∅ → 4.6.0, +655.9 KiB libvmaf: ∅ → 3.0.0, +2665.0 KiB libwebp: ∅ → 1.4.0, +2559.7 KiB openjpeg: ∅ → 2.5.2, +1525.1 KiB zstd: ∅ → 1.5.6, +1158.0 KiB $ nvd diff $(nix build nixpkgs#ffmpeg-headless^bin --print-out-paths --no-link) $(nix build .#ffmpeg-headless^bin --print-out-paths --no-link) <<< /nix/store/4n60lnj3zkjpasd4c56bzhpx2m8lc1sx-ffmpeg-headless-6.1.1-bin >>> /nix/store/884f487w5hac6rs94jq6hq5zqkxdv666-ffmpeg-headless-6.1.1-bin Added packages: [A.] #1 celt 0.11.3 [A.] #2 giflib 5.2.2 [A.] #3 lcms2 2.16 [A.] #4 lerc 4.0.0 [A.] #5 libaom 3.9.0 [A.] #6 libdeflate 1.20 [A.] #7 libtiff 4.6.0 [A.] #8 libvmaf 3.0.0 [A.] #9 libwebp 1.4.0 x2 [A.] #10 openjpeg 2.5.2 [A.] #11 zstd 1.5.6 Closure size: 66 -> 78 (15 paths added, 3 paths removed, delta +12, disk usage +18.5MiB). ```
Description of changes
Should help with #271863
This adds some extremely helpful and popular encoders in by default:
Closure size for ffmpeg-headless went up 18.5 MiB, and even less of a difference for the "small" variant.
(I tested this on the
masterbranch before rebasing because I didn't want to spend all year on a mass rebuild)Things done
nix.conf? (See Nix manual)sandbox = relaxedsandbox = truenix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/)Add a 👍 reaction to pull requests you find important.