frigate/frigate
Francesco Durighetto 4c689dde8e
Add optional idle heartbeat for Birdseye (#20453)
* Add optional idle heartbeat for Birdseye (periodic frame emission when idle)

birdseye: add optional idle heartbeat and FFmpeg tuning envs (default off)

This adds an optional configuration field `birdseye.idle_heartbeat_fps` to
enable a lightweight idle heartbeat mechanism in Birdseye. When set to a value
greater than 0, Birdseye periodically re-sends the last composed frame during
idle periods (no motion or active updates).

This helps downstream consumers such as go2rtc, Alexa, or Scrypted to attach
faster and maintain a low-latency RTSP stream when the system is idle.

Key details:
- Config-based (`birdseye.idle_heartbeat_fps`), default `0` (disabled).
- Uses existing Birdseye rendering pipeline; minimal performance impact.
- Does not alter behavior when unset.

Documentation: added tip section in docs/configuration/restream.md.

* Update docs/docs/configuration/restream.md

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>

* Update docs/docs/configuration/reference.md

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>

* Refactors Birdseye idle frame broadcasting

Simplifies the idle frame broadcasting logic by removing the dedicated thread.

The idle frame is now resent directly within the main loop,
improving efficiency and reducing complexity.  Also, limits the idle
heartbeat FPS to a maximum of 10 since the framebuffer is limited to 10 anyway

* ruff fix

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
Co-authored-by: Francesco Durighetto <francesco.durighetto@subbyx.com>
Co-authored-by: duri <duri@homelabubuntu.durihome.unifi>
2025-10-19 05:20:36 -06:00
..
api Change clean snapshots from png to webp format (#20484) 2025-10-14 07:08:41 -06:00
camera Change clean snapshots from png to webp format (#20484) 2025-10-14 07:08:41 -06:00
comms Review genai improvements (#20387) 2025-10-08 14:55:04 -05:00
config Add optional idle heartbeat for Birdseye (#20453) 2025-10-19 05:20:36 -06:00
data_processing Ensure that a negative score can not be sent (#20483) 2025-10-14 07:52:34 -05:00
db Improve LPR regex support (#19767) 2025-08-26 08:11:37 -05:00
detectors Improve Intel Model (#20541) 2025-10-17 06:31:28 -06:00
embeddings Fix audio transcription (#20395) 2025-10-08 18:06:03 -05:00
events Change clean snapshots from png to webp format (#20484) 2025-10-14 07:08:41 -06:00
genai Map verified objects to their sub label directly (#20413) 2025-10-10 08:07:00 -05:00
images Replace green screen with error message and force camera_fps to 0 (#4544) 2022-11-28 21:47:20 -06:00
motion Dynamically update masks and zones for cameras (#18359) 2025-08-16 10:20:33 -05:00
object_detection MemryX MX3 detector integration (#17723) 2025-08-22 08:11:48 -05:00
output Add optional idle heartbeat for Birdseye (#20453) 2025-10-19 05:20:36 -06:00
ptz Merge remote-tracking branch 'origin/master' into dev 2025-09-04 06:33:22 -05:00
record Improve recording retention logic (#20506) 2025-10-15 11:09:28 -06:00
review Map verified objects to their sub label directly (#20413) 2025-10-10 08:07:00 -05:00
service_manager Add metrics page for embeddings and face / license plate processing times (#15818) 2025-02-08 12:47:01 -06:00
stats Add support for Intel NPU stats (#20542) 2025-10-17 08:06:41 -05:00
test Improve recording retention logic (#20506) 2025-10-15 11:09:28 -06:00
track Change clean snapshots from png to webp format (#20484) 2025-10-14 07:08:41 -06:00
util Add support for Intel NPU stats (#20542) 2025-10-17 08:06:41 -05:00
__init__.py app container and config schema 2021-01-26 21:40:33 -06:00
__main__.py Handle SIGINT with forkserver (#18860) 2025-08-16 10:20:33 -05:00
app.py Embeddings maintainer should start if bird classification is enabled (#19576) 2025-08-17 19:48:21 -06:00
const.py Add experimental support for AMD AMF decode/encode (#19745) 2025-08-25 13:40:36 -05:00
ffmpeg_presets.py use f strings for qsv presets (#20489) 2025-10-14 13:13:26 -06:00
log.py 0.17 tweaks (#18892) 2025-08-16 10:20:33 -05:00
models.py Enhance user roles to limit camera access (#20024) 2025-09-12 05:19:29 -06:00
mypy.ini Enable mypy for track and fix typing errors (#19529) 2025-08-17 12:27:42 -05:00
plus.py Add ability to update Frigate+ model to latest from UI (#17324) 2025-03-24 09:19:58 -06:00
storage.py Rename nickname to friendly_name (#19782) 2025-08-26 15:29:52 -05:00
timeline.py Fix timeline attribute assumption (#20555) 2025-10-18 22:31:55 -05:00
types.py Live classification model training (#18583) 2025-08-16 10:20:33 -05:00
video.py Watchdog enhancements (#20237) 2025-09-28 10:52:14 -06:00
watchdog.py Improve async object detector support (#17712) 2025-04-15 08:55:38 -05:00