From a707f2141999af3a7a01f03f9078ad80d9a4d600 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Sat, 28 Jan 2023 08:19:42 -0700 Subject: [PATCH] Restart ffmpeg if process exceeds detect fps by 10 --- frigate/video.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/frigate/video.py b/frigate/video.py index 5e31dc457..eff99d4d2 100755 --- a/frigate/video.py +++ b/frigate/video.py @@ -272,6 +272,19 @@ class CameraWatchdog(threading.Thread): self.logger.info("FFmpeg didnt exit. Force killing...") self.ffmpeg_detect_process.kill() self.ffmpeg_detect_process.communicate() + elif self.camera_fps.value >= (self.config.detect.fps + 10): + self.camera_fps.value = 0 + self.logger.info( + f"{self.camera_name} exceeded fps limit. Exiting ffmpeg..." + ) + self.ffmpeg_detect_process.terminate() + try: + self.logger.info("Waiting for ffmpeg to exit gracefully...") + self.ffmpeg_detect_process.communicate(timeout=30) + except sp.TimeoutExpired: + self.logger.info("FFmpeg didnt exit. Force killing...") + self.ffmpeg_detect_process.kill() + self.ffmpeg_detect_process.communicate() for p in self.ffmpeg_other_processes: poll = p["process"].poll()