diff --git a/frigate/app.py b/frigate/app.py index 858247866..2b14af9bb 100644 --- a/frigate/app.py +++ b/frigate/app.py @@ -75,7 +75,7 @@ from frigate.timeline import TimelineProcessor from frigate.track.object_processing import TrackedObjectProcessor from frigate.util.builtin import empty_and_close_queue from frigate.util.image import UntrackedSharedMemory -from frigate.util.services import set_file_limit +from frigate.util.services import set_file_limit, get_ffmpeg_version from frigate.version import VERSION from frigate.watchdog import FrigateWatchdog @@ -552,6 +552,10 @@ class FrigateApp: self.start_record_cleanup() self.start_watchdog() + # Log ffmpeg version + ffmpeg_version = get_ffmpeg_version(self.config.ffmpeg.ffmpeg_path) + logger.info(f"Using ffmpeg: {ffmpeg_version}") + self.init_auth() try: diff --git a/frigate/util/services.py b/frigate/util/services.py index 50aa2e2b7..bf02322bf 100644 --- a/frigate/util/services.py +++ b/frigate/util/services.py @@ -782,6 +782,29 @@ def get_fs_type(path: str) -> str: return fsType +def get_ffmpeg_version(ffmpeg_path: str) -> str: + """Get ffmpeg version.""" + try: + result = sp.run( + [ffmpeg_path, "-version"], + capture_output=True, + text=True, + timeout=5 + ) + if result.returncode == 0: + # Extract version from output (first line contains version info) + first_line = result.stdout.split('\n')[0] + return first_line.strip() + else: + return f"Unknown (ffmpeg returned code {result.returncode})" + except FileNotFoundError: + return f"Not found at path: {ffmpeg_path}" + except sp.TimeoutExpired: + return "Timeout getting version" + except Exception as e: + return f"Error: {str(e)}" + + def calculate_shm_requirements(config) -> dict: try: storage_stats = shutil.disk_usage("/dev/shm")