From a12a2c94572ca0d140878e35b7317b37c96b4bff Mon Sep 17 00:00:00 2001 From: Jason Dove <1695733+jasongdove@users.noreply.github.com> Date: Wed, 22 Jul 2026 16:37:00 -0500 Subject: [PATCH] upgrade ffmpeg to 8.1.2 --- .github/workflows/artifacts.yml | 2 +- CHANGELOG.md | 4 ++++ .../Health/Checks/FFmpegVersionHealthCheck.cs | 17 +++++++++-------- docker/Dockerfile | 2 +- docker/arm32v7/Dockerfile | 2 +- docker/arm64/Dockerfile | 2 +- docker/ffmpeg-tests/Dockerfile | 2 +- 7 files changed, 18 insertions(+), 13 deletions(-) diff --git a/.github/workflows/artifacts.yml b/.github/workflows/artifacts.yml index 839baa153..7c036e8f4 100644 --- a/.github/workflows/artifacts.yml +++ b/.github/workflows/artifacts.yml @@ -311,7 +311,7 @@ jobs: uses: suisei-cn/actions-download-file@v1.3.0 id: downloadffmpeg with: - url: "https://github.com/ErsatzTV/ErsatzTV-ffmpeg/releases/download/7.1.1/ffmpeg-n7.1.1-56-gc2184b65d2-win64-gpl-7.1.zip" + url: "https://github.com/ErsatzTV/ErsatzTV-ffmpeg/releases/download/8.1.2/ffmpeg-n8.1.2-win64-gpl-8.1.zip" target: ffmpeg/ - name: Package artifacts diff --git a/CHANGELOG.md b/CHANGELOG.md index ab7794363..48e62147d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## [Unreleased] +### Changed +- Upgrade all bundled versions of ffmpeg from 7.1 to 8.1.2 + - Other versions (`linux64` and `linuxarm64`) are available at https://github.com/ErsatzTV/ErsatzTV-ffmpeg/releases/tag/8.1.2 + ### Fixed - Update Plex movie and other video titles when changed from Plex - The first library scan after updating will act like a deep scan due to adding title to the Plex etag calculation diff --git a/ErsatzTV.Infrastructure/Health/Checks/FFmpegVersionHealthCheck.cs b/ErsatzTV.Infrastructure/Health/Checks/FFmpegVersionHealthCheck.cs index f0f663f72..9c5fa2407 100644 --- a/ErsatzTV.Infrastructure/Health/Checks/FFmpegVersionHealthCheck.cs +++ b/ErsatzTV.Infrastructure/Health/Checks/FFmpegVersionHealthCheck.cs @@ -11,15 +11,15 @@ public class FFmpegVersionHealthCheck( IHardwareCapabilitiesFactory hardwareCapabilitiesFactory) : BaseHealthCheck, IFFmpegVersionHealthCheck { - private const string BundledVersion = "7.1.1"; - private const string BundledVersionVaapi = "7.1.1"; - private const string WindowsVersionPrefix = "n7.1.1"; + private const string BundledVersion = "8.1.2"; + private const string BundledVersionVaapi = "8.1.2"; + private const string WindowsVersionPrefix = "n8.1.2"; public override string Title => "FFmpeg Version"; public async Task Check(CancellationToken cancellationToken) { - var link = new HealthCheckLink("https://github.com/ErsatzTV/ErsatzTV-ffmpeg/releases/tag/7.1.1"); + var link = new HealthCheckLink("https://github.com/ErsatzTV/ErsatzTV-ffmpeg/releases/tag/8.1.2"); Option maybeFFmpegPath = await configElementRepository.GetConfigElement(ConfigElementKey.FFmpegPath, cancellationToken); @@ -82,21 +82,22 @@ public class FFmpegVersionHealthCheck( if (version.StartsWith("3.", StringComparison.OrdinalIgnoreCase) || version.StartsWith("4.", StringComparison.OrdinalIgnoreCase) || version.StartsWith("5.", StringComparison.OrdinalIgnoreCase) || - version.StartsWith("6.", StringComparison.OrdinalIgnoreCase)) + version.StartsWith("6.", StringComparison.OrdinalIgnoreCase) || + version.StartsWith("7.", StringComparison.OrdinalIgnoreCase)) { return FailResult( - $"{app} version {version} is too old; please install 7.1.1!", + $"{app} version {version} is too old; please install 8.1.2!", $"{app} version is too old", link); } - if (!version.StartsWith("7.1.1", StringComparison.OrdinalIgnoreCase) && + if (!version.StartsWith("8.1.2", StringComparison.OrdinalIgnoreCase) && !version.StartsWith(WindowsVersionPrefix, StringComparison.OrdinalIgnoreCase) && version != BundledVersion && version != BundledVersionVaapi) { return WarningResult( - $"{app} version {version} is unexpected and may have problems; please install 7.1.1!", + $"{app} version {version} is unexpected and may have problems; please install 8.1.2!", $"{app} version is unexpected", link); } diff --git a/docker/Dockerfile b/docker/Dockerfile index 95193093a..0dd2d7584 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,6 +1,6 @@ FROM mcr.microsoft.com/dotnet/aspnet:10.0-noble-amd64 AS dotnet-runtime -FROM --platform=linux/amd64 ghcr.io/ersatztv/ersatztv-ffmpeg:7.1.1 AS runtime-base +FROM --platform=linux/amd64 ghcr.io/ersatztv/ersatztv-ffmpeg:8.1.2 AS runtime-base COPY --from=dotnet-runtime /usr/share/dotnet /usr/share/dotnet RUN apt-get update && \ apt-get install -y --no-install-recommends python3 python3-pip && \ diff --git a/docker/arm32v7/Dockerfile b/docker/arm32v7/Dockerfile index 88564ec19..20f877fc6 100644 --- a/docker/arm32v7/Dockerfile +++ b/docker/arm32v7/Dockerfile @@ -1,6 +1,6 @@ FROM mcr.microsoft.com/dotnet/aspnet:10.0-noble-arm32v7 AS dotnet-runtime -FROM --platform=linux/arm/v7 ghcr.io/ersatztv/ersatztv-ffmpeg:7.1.1 AS runtime-base +FROM --platform=linux/arm/v7 ghcr.io/ersatztv/ersatztv-ffmpeg:8.1.2 AS runtime-base COPY --from=dotnet-runtime /usr/share/dotnet /usr/share/dotnet # https://hub.docker.com/_/microsoft-dotnet diff --git a/docker/arm64/Dockerfile b/docker/arm64/Dockerfile index 1e70b4d8a..3ad24e0b5 100644 --- a/docker/arm64/Dockerfile +++ b/docker/arm64/Dockerfile @@ -1,6 +1,6 @@ FROM mcr.microsoft.com/dotnet/aspnet:10.0-noble-arm64v8 AS dotnet-runtime -FROM --platform=linux/arm64 ghcr.io/ersatztv/ersatztv-ffmpeg:7.1.1 AS runtime-base +FROM --platform=linux/arm64 ghcr.io/ersatztv/ersatztv-ffmpeg:8.1.2 AS runtime-base COPY --from=dotnet-runtime /usr/share/dotnet /usr/share/dotnet # https://hub.docker.com/_/microsoft-dotnet diff --git a/docker/ffmpeg-tests/Dockerfile b/docker/ffmpeg-tests/Dockerfile index 5f3cedef4..d1516bfd3 100644 --- a/docker/ffmpeg-tests/Dockerfile +++ b/docker/ffmpeg-tests/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/ersatztv/ersatztv-ffmpeg:7.1.1 +FROM ghcr.io/ersatztv/ersatztv-ffmpeg:8.1.2 RUN apt-get update && apt-get install -y ca-certificates gnupg mkvtoolnix && \ curl -L https://dot.net/v1/dotnet-install.sh -o dotnet-install.sh && \ chmod +x ./dotnet-install.sh && \