git: b0cad1c83efc - main - www/immich: Switch to jellyfin-ffmpeg

From: Jochen Neumeister <joneum_at_FreeBSD.org>
Date: Sun, 20 Sep 2026 18:09:26 UTC
The branch main has been updated by joneum:

URL: https://cgit.FreeBSD.org/ports/commit/?id=b0cad1c83efc188a7ff16086ffcc75e5b214db72

commit b0cad1c83efc188a7ff16086ffcc75e5b214db72
Author:     Jochen Neumeister <joneum@FreeBSD.org>
AuthorDate: 2026-09-20 18:08:43 +0000
Commit:     Jochen Neumeister <joneum@FreeBSD.org>
CommitDate: 2026-09-20 18:09:16 +0000

    www/immich: Switch to jellyfin-ffmpeg
    
    Immich builds its HDR filter chain around tonemapx, which only the
    Jellyfin patch set provides.  The rc script points FFMPEG_PATH and
    FFPROBE_PATH at it.
    
    PR:             298378
    Requested by:   several people
    Sponsored by:   Netzkommune GmbH
---
 www/immich/Makefile                                  |  4 ++--
 www/immich/files/immich_server.in                    |  4 +++-
 www/immich/files/patch-server_src_dtos_config.dto.ts | 11 -----------
 www/immich/files/pkg-message.in                      | 12 +++++-------
 4 files changed, 10 insertions(+), 21 deletions(-)

diff --git a/www/immich/Makefile b/www/immich/Makefile
index d1630c355aec..eda7a7539a83 100644
--- a/www/immich/Makefile
+++ b/www/immich/Makefile
@@ -1,7 +1,7 @@
 PORTNAME=	immich
 DISTVERSIONPREFIX=	v
 DISTVERSION=	3.2.2
-PORTREVISION=	3
+PORTREVISION=	4
 CATEGORIES=	www
 MASTER_SITES=	https://github.com/joneum/FreeBSD-Immich/releases/download/v${DISTVERSION}/:buildkit
 DISTFILES=	immich-freebsd-buildkit-${DISTVERSION}${EXTRACT_SUFX}:buildkit
@@ -23,7 +23,7 @@ LIB_DEPENDS=	libheif.so:graphics/libheif \
 		libvips.so:graphics/vips
 RUN_DEPENDS=	${LOCALBASE}/bin/gzip:archivers/gzip \
 		exiftool:graphics/p5-Image-ExifTool \
-		ffmpeg:multimedia/ffmpeg
+		${LOCALBASE}/bin/jellyfin-ffmpeg8:multimedia/jellyfin-ffmpeg
 
 USES=		cpe gettext-runtime gmake gnome nodejs:22,build,run pgsql:14+ \
 		pkgconfig python:build
diff --git a/www/immich/files/immich_server.in b/www/immich/files/immich_server.in
index c28d5f8b29f6..ab04d1c63258 100644
--- a/www/immich/files/immich_server.in
+++ b/www/immich/files/immich_server.in
@@ -37,7 +37,9 @@ load_rc_config $name
 	IMMICH_BUILD_DATA=%%PREFIX%%/www/immich/build-data \
 	IMMICH_MEDIA_LOCATION=${immich_server_media_location} \
 	IMMICH_HOST=${immich_server_host} \
-	IMMICH_PORT=${immich_server_port}"}
+	IMMICH_PORT=${immich_server_port} \
+	FFMPEG_PATH=%%PREFIX%%/bin/jellyfin-ffmpeg8 \
+	FFPROBE_PATH=%%PREFIX%%/bin/jellyfin-ffprobe8"}
 
 pidfile=/var/run/immich/${name}.pid
 childpidfile=/var/run/immich/${name}_child.pid
diff --git a/www/immich/files/patch-server_src_dtos_config.dto.ts b/www/immich/files/patch-server_src_dtos_config.dto.ts
deleted file mode 100644
index 608108fc1353..000000000000
--- a/www/immich/files/patch-server_src_dtos_config.dto.ts
+++ /dev/null
@@ -1,11 +0,0 @@
---- server/src/dtos/config.dto.ts.orig	2026-09-19 10:49:13 UTC
-+++ server/src/dtos/config.dto.ts
-@@ -570,7 +570,7 @@ export const defaults = Object.freeze<SystemConfig>({
-     twoPass: false,
-     preferredHwDevice: 'auto',
-     transcode: TranscodePolicy.Required,
--    tonemap: ToneMapping.Hable,
-+    tonemap: ToneMapping.Disabled,
-     accel: TranscodeHardwareAcceleration.Disabled,
-     accelDecode: true,
-     realtime: {
diff --git a/www/immich/files/pkg-message.in b/www/immich/files/pkg-message.in
index 4f7f59c48cf1..82c5bc9ca738 100644
--- a/www/immich/files/pkg-message.in
+++ b/www/immich/files/pkg-message.in
@@ -62,13 +62,11 @@ Running it:
    import keeps the library readable without the database.
  * Logs are rotated by newsyslog through
    %%PREFIX%%/etc/newsyslog.conf.d/immich.conf.
- * HDR tone mapping is off by default.  Immich builds its filter chain
-   around the tonemapx filter, which ffmpeg does not have, so an HDR
-   video would get no thumbnail at all.  The switch sits under
-   Administration > Settings > Video Transcoding.  Turning it on needs
-   an ffmpeg that provides tonemapx, and its path belongs into
-   FFMPEG_PATH and FFPROBE_PATH in immich.env.  Existing installations
-   keep whatever is stored in their database.
+ * Video work runs through multimedia/jellyfin-ffmpeg, which the rc
+   script selects with FFMPEG_PATH and FFPROBE_PATH.  Immich builds its
+   HDR filter chain around tonemapx, a filter multimedia/ffmpeg does not
+   provide, so with plain ffmpeg an HDR video gets no thumbnail at all.
+   To use a different build, set both variables in immich.env.
  * Schema migrations run automatically on start, so take a backup
    before a version upgrade; downgrades are not supported.  After a
    PostgreSQL major upgrade, rebuild pgvector and vchord.  After a