lol
1{
2 ffmpeg-headless,
3 fetchFromGitHub,
4 fetchpatch2,
5 lib,
6}:
7
8let
9 version = "5.1.4";
10in
11
12(ffmpeg-headless.override {
13 inherit version; # Important! This sets the ABI.
14
15 # Fetch commit hash from this repository: https://github.com/Servarr/ffmpeg-build
16 # Compare build logs to upstream logs here: https://dev.azure.com/Servarr/Servarr/_build?definitionId=15
17 source = fetchFromGitHub {
18 owner = "Servarr";
19 repo = "FFmpeg";
20 rev = "e9230b4c9027435dd402a68833f144643a3df43a";
21 hash = "sha256-oMIblMOnnYpKvYeleCZpFZURGVc3fDAlYpOJu+u7HkU=";
22 };
23
24 buildFfmpeg = false;
25 buildFfplay = false;
26 buildAvdevice = false;
27 buildAvfilter = false;
28 buildPostproc = false;
29 buildSwresample = false;
30 buildSwscale = false;
31
32 withAlsa = false;
33 withAmf = false;
34 withAom = false;
35 withAss = false;
36 withBluray = false;
37 withBzlib = false;
38 withCudaLLVM = false;
39 withCuvid = false;
40 withDrm = false;
41 withNvcodec = false;
42 withFontconfig = false;
43 withFreetype = false;
44 withFribidi = false;
45 withGnutls = false;
46 withIconv = false;
47 withLzma = false;
48 withMp3lame = false;
49 withOpencl = false;
50 withOpenjpeg = false;
51 withOpenmpt = false;
52 withOpus = false;
53 withRist = false;
54 withSoxr = false;
55 withSpeex = false;
56 withSrt = false;
57 withSsh = false;
58 withSvtav1 = false;
59 withTheora = false;
60 withV4l2 = false;
61 withVaapi = false;
62 withVidStab = false;
63 withVorbis = false;
64 withVpx = false;
65 withVulkan = false;
66 withWebp = false;
67 withX264 = false;
68 withX265 = false;
69 withXml2 = false;
70 withXvid = false;
71 withZimg = false;
72 withZlib = false;
73 withZvbi = false;
74}).overrideAttrs
75 (old: {
76 pname = "servarr-ffmpeg";
77
78 patches = old.patches ++ [
79 (fetchpatch2 {
80 name = "fix_build_failure_due_to_libjxl_version_to_new";
81 url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/75b1a555a70c178a9166629e43ec2f6250219eb2";
82 hash = "sha256-+2kzfPJf5piim+DqEgDuVEEX5HLwRsxq0dWONJ4ACrU=";
83 })
84 ];
85
86 configureFlags = old.configureFlags ++ [
87 "--extra-version=Servarr"
88
89 # https://github.com/Servarr/ffmpeg-build/blob/bc29af6f0bf84bf9253d4d462611b1dc31ee688e/common.sh#L15-L45
90
91 # Disable unused functionnalities
92 "--disable-encoders"
93 "--disable-muxers"
94 "--disable-protocols"
95 "--disable-bsfs"
96
97 # FFMpeg options - enable what we need
98 "--enable-protocol=file"
99 "--enable-bsf=av1_frame_split"
100 "--enable-bsf=av1_frame_merge"
101 "--enable-bsf=av1_metadata"
102 ];
103
104 doCheck = false;
105
106 meta = {
107 inherit (old.meta) license pkgConfigModules;
108 mainProgram = "ffprobe";
109 description = "${old.meta.description} (Servarr fork)";
110 homepage = "https://github.com/Servarr/FFmpeg";
111 maintainers = with lib.maintainers; [ nyanloutre ];
112 };
113 })