From e68c7f3ca9f7c7749dfe53ceaffae5e286fab420 Mon Sep 17 00:00:00 2001 From: ryzendigo <48058157+ryzendigo@users.noreply.github.com> Date: Mon, 16 Mar 2026 14:22:52 +0800 Subject: [PATCH] fix: pass ffmpeg_path to birdseye encode preset format string When hwaccel_args is a list (not a preset string), the fallback in parse_preset_hardware_acceleration_encode() calls arg_map["default"].format(input, output) with only 2 positional args. But PRESETS_HW_ACCEL_ENCODE_BIRDSEYE["default"] contains {0}, {1}, {2} expecting ffmpeg_path as the first arg. This causes IndexError: Replacement index 2 out of range for size 2 which crashes create_config.py on every go2rtc start, taking down all camera streams. Pass ffmpeg_path as the first argument to match the preset template. --- frigate/ffmpeg_presets.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frigate/ffmpeg_presets.py b/frigate/ffmpeg_presets.py index 43272a6d1..96b8afeb0 100644 --- a/frigate/ffmpeg_presets.py +++ b/frigate/ffmpeg_presets.py @@ -278,7 +278,7 @@ def parse_preset_hardware_acceleration_encode( arg_map = PRESETS_HW_ACCEL_ENCODE_TIMELAPSE if not isinstance(arg, str): - return arg_map["default"].format(input, output) + return arg_map["default"].format(ffmpeg_path, input, output) # Not all jetsons have HW encoders, so fall back to default SW encoder if not if arg.startswith("preset-jetson-") and not os.path.exists("/dev/nvhost-msenc"):