From 411798004ab24507123c29c9c5499bf2c5ac4ef1 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Fri, 20 Mar 2026 07:50:58 -0600 Subject: [PATCH] Update ffmpeg (#22548) * Update ffmpeg builds to 7.1 * Remove unused * Cleanup --- docker/main/install_deps.sh | 4 ++-- frigate/ffmpeg_presets.py | 17 ++++------------- frigate/test/test_ffmpeg_presets.py | 5 ++--- 3 files changed, 8 insertions(+), 18 deletions(-) diff --git a/docker/main/install_deps.sh b/docker/main/install_deps.sh index f3e00d0da..2dfe07d35 100755 --- a/docker/main/install_deps.sh +++ b/docker/main/install_deps.sh @@ -52,7 +52,7 @@ if [[ "${TARGETARCH}" == "amd64" ]]; then tar -xf ffmpeg.tar.xz -C /usr/lib/ffmpeg/5.0 --strip-components 1 amd64/bin/ffmpeg amd64/bin/ffprobe rm -rf ffmpeg.tar.xz mkdir -p /usr/lib/ffmpeg/7.0 - wget -qO ffmpeg.tar.xz "https://github.com/NickM-27/FFmpeg-Builds/releases/download/autobuild-2024-09-19-12-51/ffmpeg-n7.0.2-18-g3e6cec1286-linux64-gpl-7.0.tar.xz" + wget -qO ffmpeg.tar.xz "https://github.com/NickM-27/FFmpeg-Builds/releases/download/autobuild-2026-03-19-13-03/ffmpeg-n7.1.3-43-g5a1f107b4c-linux64-gpl-7.1.tar.xz" tar -xf ffmpeg.tar.xz -C /usr/lib/ffmpeg/7.0 --strip-components 1 amd64/bin/ffmpeg amd64/bin/ffprobe rm -rf ffmpeg.tar.xz fi @@ -64,7 +64,7 @@ if [[ "${TARGETARCH}" == "arm64" ]]; then tar -xf ffmpeg.tar.xz -C /usr/lib/ffmpeg/5.0 --strip-components 1 arm64/bin/ffmpeg arm64/bin/ffprobe rm -f ffmpeg.tar.xz mkdir -p /usr/lib/ffmpeg/7.0 - wget -qO ffmpeg.tar.xz "https://github.com/NickM-27/FFmpeg-Builds/releases/download/autobuild-2024-09-19-12-51/ffmpeg-n7.0.2-18-g3e6cec1286-linuxarm64-gpl-7.0.tar.xz" + wget -qO ffmpeg.tar.xz "https://github.com/NickM-27/FFmpeg-Builds/releases/download/autobuild-2026-03-19-13-03/ffmpeg-n7.1.3-43-g5a1f107b4c-linuxarm64-gpl-7.1.tar.xz" tar -xf ffmpeg.tar.xz -C /usr/lib/ffmpeg/7.0 --strip-components 1 arm64/bin/ffmpeg arm64/bin/ffprobe rm -f ffmpeg.tar.xz fi diff --git a/frigate/ffmpeg_presets.py b/frigate/ffmpeg_presets.py index ec40bf0c5..0652ec645 100644 --- a/frigate/ffmpeg_presets.py +++ b/frigate/ffmpeg_presets.py @@ -120,10 +120,10 @@ PRESETS_HW_ACCEL_DECODE["preset-rk-h265"] = PRESETS_HW_ACCEL_DECODE[ PRESETS_HW_ACCEL_SCALE = { "preset-rpi-64-h264": "-r {0} -vf fps={0},scale={1}:{2}", "preset-rpi-64-h265": "-r {0} -vf fps={0},scale={1}:{2}", - FFMPEG_HWACCEL_VAAPI: "-r {0} -vf fps={0},scale_vaapi=w={1}:h={2},hwdownload,format=nv12,eq=gamma=1.4:gamma_weight=0.5", - "preset-intel-qsv-h264": "-r {0} -vf vpp_qsv=framerate={0}:w={1}:h={2}:format=nv12,hwdownload,format=nv12,format=yuv420p", - "preset-intel-qsv-h265": "-r {0} -vf vpp_qsv=framerate={0}:w={1}:h={2}:format=nv12,hwdownload,format=nv12,format=yuv420p", - FFMPEG_HWACCEL_NVIDIA: "-r {0} -vf fps={0},scale_cuda=w={1}:h={2},hwdownload,format=nv12,eq=gamma=1.4:gamma_weight=0.5", + FFMPEG_HWACCEL_VAAPI: "-r {0} -vf fps={0},scale_vaapi=w={1}:h={2},hwdownload,format=nv12", + "preset-intel-qsv-h264": "-r {0} -vf vpp_qsv=w={1}:h={2}:format=nv12,hwdownload,format=nv12,fps={0},format=yuv420p", + "preset-intel-qsv-h265": "-r {0} -vf vpp_qsv=w={1}:h={2}:format=nv12,hwdownload,format=nv12,fps={0},format=yuv420p", + FFMPEG_HWACCEL_NVIDIA: "-r {0} -vf fps={0},scale_cuda=w={1}:h={2},hwdownload,format=nv12", "preset-jetson-h264": "-r {0}", # scaled in decoder "preset-jetson-h265": "-r {0}", # scaled in decoder FFMPEG_HWACCEL_RKMPP: "-r {0} -vf scale_rkrga=w={1}:h={2}:format=yuv420p:force_original_aspect_ratio=0,hwmap=mode=read,format=yuv420p", @@ -242,15 +242,6 @@ def parse_preset_hardware_acceleration_scale( else: scale = PRESETS_HW_ACCEL_SCALE.get(arg, PRESETS_HW_ACCEL_SCALE["default"]) - if ( - ",hwdownload,format=nv12,eq=gamma=1.4:gamma_weight=0.5" in scale - and os.environ.get("FFMPEG_DISABLE_GAMMA_EQUALIZER") is not None - ): - scale = scale.replace( - ",hwdownload,format=nv12,eq=gamma=1.4:gamma_weight=0.5", - ":format=nv12,hwdownload,format=nv12,format=yuv420p", - ) - scale = scale.format(fps, width, height).split(" ") scale.extend(detect_args) return scale diff --git a/frigate/test/test_ffmpeg_presets.py b/frigate/test/test_ffmpeg_presets.py index 92df0571b..86fdd5f3a 100644 --- a/frigate/test/test_ffmpeg_presets.py +++ b/frigate/test/test_ffmpeg_presets.py @@ -73,9 +73,8 @@ class TestFfmpegPresets(unittest.TestCase): assert "preset-nvidia-h264" not in ( " ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]) ) - assert ( - "fps=10,scale_cuda=w=2560:h=1920,hwdownload,format=nv12,eq=gamma=1.4:gamma_weight=0.5" - in (" ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"])) + assert "fps=10,scale_cuda=w=2560:h=1920,hwdownload,format=nv12" in ( + " ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]) ) def test_default_ffmpeg_input_arg_preset(self):