Unverified Commit cc80c888 authored by Paul TREHIOU's avatar Paul TREHIOU Committed by GitHub
Browse files

servarr-ffmpeg: init at 5.1.4

parent 6f5b9521
Loading
Loading
Loading
Loading
+113 −0
Original line number Diff line number Diff line
{
  ffmpeg-headless,
  fetchFromGitHub,
  fetchpatch2,
  lib,
}:

let
  version = "5.1.4";
in

(ffmpeg-headless.override {
  inherit version; # Important! This sets the ABI.

  # Fetch commit hash from this repository: https://github.com/Servarr/ffmpeg-build
  # Compare build logs to upstream logs here: https://dev.azure.com/Servarr/Servarr/_build?definitionId=15
  source = fetchFromGitHub {
    owner = "Servarr";
    repo = "FFmpeg";
    rev = "e9230b4c9027435dd402a68833f144643a3df43a";
    hash = "sha256-oMIblMOnnYpKvYeleCZpFZURGVc3fDAlYpOJu+u7HkU=";
  };

  buildFfmpeg = false;
  buildFfplay = false;
  buildAvdevice = false;
  buildAvfilter = false;
  buildPostproc = false;
  buildSwresample = false;
  buildSwscale = false;

  withAlsa = false;
  withAmf = false;
  withAom = false;
  withAss = false;
  withBluray = false;
  withBzlib = false;
  withCudaLLVM = false;
  withCuvid = false;
  withDrm = false;
  withNvcodec = false;
  withFontconfig = false;
  withFreetype = false;
  withFribidi = false;
  withGnutls = false;
  withIconv = false;
  withLzma = false;
  withMp3lame = false;
  withOpencl = false;
  withOpenjpeg = false;
  withOpenmpt = false;
  withOpus = false;
  withRist = false;
  withSoxr = false;
  withSpeex = false;
  withSrt = false;
  withSsh = false;
  withSvtav1 = false;
  withTheora = false;
  withV4l2 = false;
  withVaapi = false;
  withVidStab = false;
  withVorbis = false;
  withVpx = false;
  withVulkan = false;
  withWebp = false;
  withX264 = false;
  withX265 = false;
  withXml2 = false;
  withXvid = false;
  withZimg = false;
  withZlib = false;
  withZvbi = false;
}).overrideAttrs
  (old: {
    pname = "servarr-ffmpeg";

    patches = old.patches ++ [
      (fetchpatch2 {
        name = "fix_build_failure_due_to_libjxl_version_to_new";
        url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/75b1a555a70c178a9166629e43ec2f6250219eb2";
        hash = "sha256-+2kzfPJf5piim+DqEgDuVEEX5HLwRsxq0dWONJ4ACrU=";
      })
    ];

    configureFlags = old.configureFlags ++ [
      "--extra-version=Servarr"

      # https://github.com/Servarr/ffmpeg-build/blob/bc29af6f0bf84bf9253d4d462611b1dc31ee688e/common.sh#L15-L45

      # Disable unused functionnalities
      "--disable-encoders"
      "--disable-muxers"
      "--disable-protocols"
      "--disable-bsfs"

      # FFMpeg options - enable what we need
      "--enable-protocol=file"
      "--enable-bsf=av1_frame_split"
      "--enable-bsf=av1_frame_merge"
      "--enable-bsf=av1_metadata"
    ];

    doCheck = false;

    meta = {
      inherit (old.meta) license;
      mainProgram = "ffprobe";
      description = "${old.meta.description} (Servarr fork)";
      homepage = "https://github.com/Servarr/FFmpeg";
      maintainers = with lib.maintainers; [ nyanloutre ];
    };
  })
+2 −2
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@
  dotnetCorePackages,
  sqlite,
  withFFmpeg ? true, # replace bundled ffprobe binary with symlink to ffmpeg package.
  ffmpeg,
  servarr-ffmpeg,
  fetchYarnDeps,
  yarn,
  fixup-yarn-lock,
@@ -72,7 +72,7 @@ buildDotnetModule {
    hash = "sha256-YkBFvv+g4p22HdM/GQAHVGGW1yLYGWpNtRq7+QJiLIw=";
  };

  ffprobe = lib.optionalDrvAttr withFFmpeg (lib.getExe' ffmpeg "ffprobe");
  ffprobe = lib.optionalDrvAttr withFFmpeg (lib.getExe' servarr-ffmpeg "ffprobe");

  postConfigure = ''
    yarn config --offline set yarn-offline-mirror "$yarnOfflineCache"