frigate/frigate/config
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
..
camera Add optional idle heartbeat for Birdseye (#20453) 2025-10-19 05:20:36 -06:00
__init__.py Improve Notifications (#16453) 2025-02-10 19:47:15 -07:00
auth.py Enhance user roles to limit camera access (#20024) 2025-09-12 05:19:29 -06:00
base.py Dynamically update masks and zones for cameras (#18359) 2025-08-16 10:20:33 -05:00
camera_group.py Split config.py into multiple files (#14038) 2024-09-28 14:21:42 -05:00
classification.py Fix audio transcription (#20395) 2025-10-08 18:06:03 -05:00
config.py Empty cameras view (#20434) 2025-10-11 15:40:39 -06:00
database.py Split config.py into multiple files (#14038) 2024-09-28 14:21:42 -05:00
env.py Read secrets dir from CREDENTIALS_DIRECTORY (#19327) 2025-09-19 06:34:23 -06:00
logger.py Ensure logging config is propagated to forked processes (#18704) 2025-08-16 10:20:33 -05:00
mqtt.py Improve comms typing (#18599) 2025-08-16 10:20:33 -05:00
network.py Enable Optional IPv6 Support for Nginx (#19602) 2025-08-18 17:39:12 -06:00
proxy.py Add role map support for proxy auth (#19758) 2025-08-25 17:58:41 -05:00
telemetry.py Replaces sriov flag with explicit path to the Intel GPU device (#19136) 2025-07-14 07:11:25 -05:00
tls.py Split config.py into multiple files (#14038) 2024-09-28 14:21:42 -05:00
ui.py Estimated object speed for zones (#16452) 2025-02-10 13:23:42 -07:00