2024-09-22 17:56:57 +02:00
|
|
|
import re
|
|
|
|
|
2023-04-23 18:35:40 +02:00
|
|
|
CONFIG_DIR = "/config"
|
|
|
|
DEFAULT_DB_PATH = f"{CONFIG_DIR}/frigate.db"
|
2023-04-30 20:32:36 +02:00
|
|
|
MODEL_CACHE_DIR = f"{CONFIG_DIR}/model_cache"
|
2021-06-07 03:24:36 +02:00
|
|
|
BASE_DIR = "/media/frigate"
|
|
|
|
CLIPS_DIR = f"{BASE_DIR}/clips"
|
2023-06-08 13:32:35 +02:00
|
|
|
EXPORT_DIR = f"{BASE_DIR}/exports"
|
2024-10-23 00:05:48 +02:00
|
|
|
FACE_DIR = f"{CLIPS_DIR}/faces"
|
|
|
|
RECORD_DIR = f"{BASE_DIR}/recordings"
|
2022-12-31 15:54:10 +01:00
|
|
|
BIRDSEYE_PIPE = "/tmp/cache/birdseye"
|
2021-02-17 14:23:32 +01:00
|
|
|
CACHE_DIR = "/tmp/cache"
|
2023-07-01 15:18:33 +02:00
|
|
|
FRIGATE_LOCALHOST = "http://127.0.0.1:5000"
|
2022-04-03 22:00:11 +02:00
|
|
|
PLUS_ENV_VAR = "PLUS_API_KEY"
|
|
|
|
PLUS_API_HOST = "https://api.frigate.video"
|
2022-11-02 13:00:54 +01:00
|
|
|
|
2024-09-17 17:41:46 +02:00
|
|
|
# Attribute & Object constants
|
2023-06-28 12:51:53 +02:00
|
|
|
|
2024-09-28 15:49:04 +02:00
|
|
|
DEFAULT_ATTRIBUTE_LABEL_MAP = {
|
|
|
|
"person": ["amazon", "face"],
|
2024-10-16 23:22:34 +02:00
|
|
|
"car": [
|
|
|
|
"amazon",
|
|
|
|
"an_post",
|
|
|
|
"dhl",
|
|
|
|
"dpd",
|
|
|
|
"fedex",
|
|
|
|
"gls",
|
|
|
|
"license_plate",
|
|
|
|
"nzpost",
|
|
|
|
"postnl",
|
|
|
|
"postnord",
|
|
|
|
"purolator",
|
|
|
|
"ups",
|
|
|
|
"usps",
|
|
|
|
],
|
2023-06-28 12:51:53 +02:00
|
|
|
}
|
2023-10-21 01:29:52 +02:00
|
|
|
LABEL_CONSOLIDATION_MAP = {
|
|
|
|
"car": 0.8,
|
|
|
|
"face": 0.5,
|
|
|
|
}
|
|
|
|
LABEL_CONSOLIDATION_DEFAULT = 0.9
|
2024-02-06 00:52:06 +01:00
|
|
|
LABEL_NMS_MAP = {
|
|
|
|
"car": 0.6,
|
|
|
|
}
|
|
|
|
LABEL_NMS_DEFAULT = 0.4
|
2023-06-28 12:51:53 +02:00
|
|
|
|
2024-09-17 17:41:46 +02:00
|
|
|
# Audio constants
|
2023-07-01 15:18:33 +02:00
|
|
|
|
|
|
|
AUDIO_DURATION = 0.975
|
|
|
|
AUDIO_FORMAT = "s16le"
|
|
|
|
AUDIO_MAX_BIT_RANGE = 32768.0
|
|
|
|
AUDIO_SAMPLE_RATE = 16000
|
2023-07-17 13:07:15 +02:00
|
|
|
AUDIO_MIN_CONFIDENCE = 0.5
|
2023-07-01 15:18:33 +02:00
|
|
|
|
2024-09-17 17:41:46 +02:00
|
|
|
# DB constants
|
2024-04-07 22:37:12 +02:00
|
|
|
|
|
|
|
MAX_WAL_SIZE = 10 # MB
|
|
|
|
|
2024-09-19 21:29:58 +02:00
|
|
|
# Ffmpeg constants
|
2024-01-01 16:36:40 +01:00
|
|
|
|
2024-09-19 21:29:58 +02:00
|
|
|
DEFAULT_FFMPEG_VERSION = "7.0"
|
|
|
|
INCLUDED_FFMPEG_VERSIONS = ["7.0", "5.0"]
|
2024-01-01 16:36:40 +01:00
|
|
|
FFMPEG_HWACCEL_NVIDIA = "preset-nvidia"
|
|
|
|
FFMPEG_HWACCEL_VAAPI = "preset-vaapi"
|
2024-09-06 02:27:32 +02:00
|
|
|
FFMPEG_HWACCEL_VULKAN = "preset-vulkan"
|
2024-01-01 16:36:40 +01:00
|
|
|
|
2024-09-17 17:41:46 +02:00
|
|
|
# Regex constants
|
2022-11-02 13:00:54 +01:00
|
|
|
|
2023-05-29 12:31:17 +02:00
|
|
|
REGEX_CAMERA_NAME = r"^[a-zA-Z0-9_-]+$"
|
|
|
|
REGEX_RTSP_CAMERA_USER_PASS = r":\/\/[a-zA-Z0-9_-]+:[\S]+@"
|
|
|
|
REGEX_HTTP_CAMERA_USER_PASS = r"user=[a-zA-Z0-9_-]+&password=[\S]+"
|
2024-09-22 17:56:57 +02:00
|
|
|
REGEX_JSON = re.compile(r"^\s*\{")
|
2022-11-29 02:24:20 +01:00
|
|
|
|
|
|
|
# Known Driver Names
|
|
|
|
|
|
|
|
DRIVER_ENV_VAR = "LIBVA_DRIVER_NAME"
|
|
|
|
DRIVER_AMD = "radeonsi"
|
|
|
|
DRIVER_INTEL_i965 = "i965"
|
|
|
|
DRIVER_INTEL_iHD = "iHD"
|
2023-04-26 15:25:26 +02:00
|
|
|
|
2024-03-12 00:31:05 +01:00
|
|
|
# Preview Values
|
|
|
|
|
|
|
|
PREVIEW_FRAME_TYPE = "webp"
|
|
|
|
|
2023-04-26 15:25:26 +02:00
|
|
|
# Record Values
|
|
|
|
|
2023-11-05 21:30:29 +01:00
|
|
|
CACHE_SEGMENT_FORMAT = "%Y%m%d%H%M%S%z"
|
2023-11-18 22:37:06 +01:00
|
|
|
MAX_PRE_CAPTURE = 60
|
2023-04-26 15:25:26 +02:00
|
|
|
MAX_SEGMENT_DURATION = 600
|
2023-11-18 22:37:06 +01:00
|
|
|
MAX_SEGMENTS_IN_CACHE = 6
|
2023-06-08 13:32:35 +02:00
|
|
|
MAX_PLAYLIST_SECONDS = 7200 # support 2 hour segments for a single playlist to account for cameras with inconsistent segment times
|
2023-07-26 12:55:08 +02:00
|
|
|
|
|
|
|
# Internal Comms Topics
|
|
|
|
|
|
|
|
INSERT_MANY_RECORDINGS = "insert_many_recordings"
|
2023-12-03 15:16:01 +01:00
|
|
|
INSERT_PREVIEW = "insert_preview"
|
2023-10-19 01:21:52 +02:00
|
|
|
REQUEST_REGION_GRID = "request_region_grid"
|
2024-02-21 00:26:09 +01:00
|
|
|
UPSERT_REVIEW_SEGMENT = "upsert_review_segment"
|
2024-04-24 15:44:28 +02:00
|
|
|
CLEAR_ONGOING_REVIEW_SEGMENTS = "clear_ongoing_review_segments"
|
2024-04-30 15:09:50 +02:00
|
|
|
UPDATE_CAMERA_ACTIVITY = "update_camera_activity"
|
2024-06-21 23:30:19 +02:00
|
|
|
UPDATE_EVENT_DESCRIPTION = "update_event_description"
|
2024-10-07 22:30:45 +02:00
|
|
|
UPDATE_MODEL_STATE = "update_model_state"
|
2024-10-10 21:28:43 +02:00
|
|
|
UPDATE_EMBEDDINGS_REINDEX_PROGRESS = "handle_embeddings_reindex_progress"
|
2023-10-22 18:59:13 +02:00
|
|
|
|
2024-07-02 00:08:14 +02:00
|
|
|
# Stats Values
|
|
|
|
|
|
|
|
FREQUENCY_STATS_POINTS = 15
|
|
|
|
|
2023-10-22 18:59:13 +02:00
|
|
|
# Autotracking
|
|
|
|
|
2023-11-01 12:12:43 +01:00
|
|
|
AUTOTRACKING_MAX_AREA_RATIO = 0.6
|
2023-10-22 18:59:13 +02:00
|
|
|
AUTOTRACKING_MOTION_MIN_DISTANCE = 20
|
|
|
|
AUTOTRACKING_MOTION_MAX_POINTS = 500
|
|
|
|
AUTOTRACKING_MAX_MOVE_METRICS = 500
|
2023-12-28 14:48:44 +01:00
|
|
|
AUTOTRACKING_ZOOM_OUT_HYSTERESIS = 1.1
|
|
|
|
AUTOTRACKING_ZOOM_IN_HYSTERESIS = 0.95
|
2023-10-22 18:59:13 +02:00
|
|
|
AUTOTRACKING_ZOOM_EDGE_THRESHOLD = 0.05
|
2024-05-18 18:36:13 +02:00
|
|
|
|
|
|
|
# Auth
|
|
|
|
|
|
|
|
JWT_SECRET_ENV_VAR = "FRIGATE_JWT_SECRET"
|
|
|
|
PASSWORD_HASH_ALGORITHM = "pbkdf2_sha256"
|