diff --git a/web/public/locales/en/views/system.json b/web/public/locales/en/views/system.json index da8d204581..f903a82c2e 100644 --- a/web/public/locales/en/views/system.json +++ b/web/public/locales/en/views/system.json @@ -311,6 +311,7 @@ "lastRefreshed": "Last refreshed: ", "stats": { "ffmpegHighCpuUsage": "{{camera}} has high FFmpeg CPU usage ({{ffmpegAvg}}%)", + "cameraSkippedDetections": "{{camera}} has skipped detections ({{fps}}).", "detectHighCpuUsage": "{{camera}} has high detect CPU usage ({{detectAvg}}%)", "healthy": "System is healthy", "reindexingEmbeddings": "Reindexing embeddings ({{processed}}% complete)", diff --git a/web/src/hooks/use-stats.ts b/web/src/hooks/use-stats.ts index 8679bbf506..5634065b02 100644 --- a/web/src/hooks/use-stats.ts +++ b/web/src/hooks/use-stats.ts @@ -144,6 +144,19 @@ export default function useStats(stats: FrigateStats | undefined) { const cameraName = config?.cameras?.[name]?.friendly_name ?? name; + if (config?.cameras?.[name]?.enabled && cam["skipped_fps"] > 1) { + problems.push( + problem( + "warning", + t("stats.cameraSkippedDetections", { + camera: capitalizeFirstLetter(capitalizeAll(cameraName)), + fps: cam["skipped_fps"], + }), + "/system#cameras", + ), + ); + } + if (!isNaN(ffmpegAvg) && ffmpegAvg >= CameraFfmpegThreshold.error) { problems.push( problem(