Miscellaneous Fixes (#21102)

* ensure audio events display timeline entries in tracking details

* tweak tracking details layout for small desktop sizes

* update transcription docs

* Update classification docs for training recommendations

* Make number of classification images to be kept configurable

* Add bird to classification reference

* Fix incorrect averaging of the segments so it correctly only uses the most recent segments

* fix trigger logic

* add ability to download clean snapshot

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
This commit is contained in:
Josh Hawkins
2025-12-02 07:21:15 -07:00
committed by GitHub
co-authored by Nicolas Mowen
parent 9d4aac2b8e
commit 1f9669bbe5
15 changed files with 240 additions and 126 deletions
+11 -5
View File
@@ -5,7 +5,7 @@ import shutil
import threading
from pathlib import Path
from peewee import fn
from peewee import SQL, fn
from frigate.config import FrigateConfig
from frigate.const import RECORD_DIR
@@ -44,13 +44,19 @@ class StorageMaintainer(threading.Thread):
)
}
# calculate MB/hr
# calculate MB/hr from last 100 segments
try:
bandwidth = round(
Recordings.select(fn.AVG(bandwidth_equation))
# Subquery to get last 100 segments, then average their bandwidth
last_100 = (
Recordings.select(bandwidth_equation.alias("bw"))
.where(Recordings.camera == camera, Recordings.segment_size > 0)
.order_by(Recordings.start_time.desc())
.limit(100)
.scalar()
.alias("recent")
)
bandwidth = round(
Recordings.select(fn.AVG(SQL("bw"))).from_(last_100).scalar()
* 3600,
2,
)