From 9a6bf3d16743a4c0b2a1c9a2ca2793bab2a85319 Mon Sep 17 00:00:00 2001 From: Andrew Reiter Date: Tue, 4 Jul 2023 09:22:26 -0400 Subject: [PATCH] Query ffmpeg version in s6 run script instead of subprocessing in every import --- docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/run | 2 ++ docker/rootfs/usr/local/go2rtc/create_config.py | 3 +-- frigate/ffmpeg_presets.py | 6 +----- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/run b/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/run index 0a835550e..d46f3c856 100755 --- a/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/run +++ b/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/run @@ -42,6 +42,8 @@ function migrate_db_path() { fi } +LIBAVFORMAT_VERSION_MAJOR=$(ffmpeg -version | grep -Po 'libavformat\W+\K\d+') || echo "[ERROR] Failed to determine ffmpeg version" + echo "[INFO] Preparing Frigate..." migrate_db_path diff --git a/docker/rootfs/usr/local/go2rtc/create_config.py b/docker/rootfs/usr/local/go2rtc/create_config.py index 362888344..8b570e0bf 100644 --- a/docker/rootfs/usr/local/go2rtc/create_config.py +++ b/docker/rootfs/usr/local/go2rtc/create_config.py @@ -9,7 +9,6 @@ import yaml sys.path.insert(0, "/opt/frigate") from frigate.const import BIRDSEYE_PIPE # noqa: E402 from frigate.ffmpeg_presets import ( # noqa: E402 - LIBAVFORMAT_VERSION_MAJOR, parse_preset_hardware_acceleration_encode, ) @@ -72,7 +71,7 @@ elif go2rtc_config["rtsp"].get("default_query") is None: go2rtc_config["rtsp"]["default_query"] = "mp4" # need to replace ffmpeg command when using ffmpeg4 -if LIBAVFORMAT_VERSION_MAJOR < 59: +if int(os.environ['LIBAVFORMAT_VERSION_MAJOR']) < 59: if go2rtc_config.get("ffmpeg") is None: go2rtc_config["ffmpeg"] = { "rtsp": "-fflags nobuffer -flags low_delay -stimeout 5000000 -user_agent go2rtc/ffmpeg -rtsp_transport tcp -i {input}" diff --git a/frigate/ffmpeg_presets.py b/frigate/ffmpeg_presets.py index 46d0fb293..b9cbd0653 100644 --- a/frigate/ffmpeg_presets.py +++ b/frigate/ffmpeg_presets.py @@ -2,7 +2,6 @@ import logging import os -import subprocess from enum import Enum from typing import Any @@ -43,10 +42,7 @@ class LibvaGpuSelector: return "" -LIBAVFORMAT_VERSION_MAJOR = int( - subprocess.getoutput("ffmpeg -version | grep -Po 'libavformat\W+\K\d+'") -) -TIMEOUT_PARAM = "-timeout" if LIBAVFORMAT_VERSION_MAJOR >= 59 else "-stimeout" +TIMEOUT_PARAM = "-timeout" if int(os.environ['LIBAVFORMAT_VERSION_MAJOR']) >= 59 else "-stimeout" _gpu_selector = LibvaGpuSelector() _user_agent_args = [