{ "label": "Camera configuration", "description": "Per-camera settings that control streams, detection, recording, notifications, and integrations.", "name": { "label": "Camera name", "description": "Unique identifier for the camera used in configuration and topics." }, "friendly_name": { "label": "Camera friendly name used in the Frigate UI", "description": "Human-friendly display name shown in the Frigate UI." }, "enabled": { "label": "Enable camera", "description": "Enable or disable this camera configuration; disabled cameras do not capture live streams." }, "audio": { "label": "Audio events configuration", "description": "Camera-specific audio detection settings that override global audio options.", "enabled": { "label": "Enable audio events", "description": "Enable or disable audio event detection for this camera. Can be overridden by global settings." }, "max_not_heard": { "label": "Seconds of not hearing the type of audio to end the event", "description": "Amount of seconds without the configured audio type before the audio event is ended." }, "min_volume": { "label": "Min volume required to run audio detection", "description": "Minimum RMS volume threshold required to run audio detection; lower values increase sensitivity." }, "listen": { "label": "Audio to listen for", "description": "List of audio event types to detect (for example: bark, fire_alarm, scream, speech, yell)." }, "filters": { "label": "Audio filters", "description": "Per-audio-type filter settings such as confidence thresholds used to reduce false positives." }, "enabled_in_config": { "label": "Keep track of original state of audio detection", "description": "Indicates whether audio detection was enabled in the original static config for this camera." }, "num_threads": { "label": "Number of detection threads", "description": "Number of worker threads to use for audio processing on this camera." } }, "audio_transcription": { "label": "Audio transcription config", "description": "Settings for live and speech audio transcription on this camera.", "enabled": { "label": "Enable audio transcription", "description": "Enable live and speech transcription for audio events on this camera." }, "enabled_in_config": { "label": "Keep track of original state of audio transcription", "description": "Indicates whether audio transcription was originally enabled in the static config." }, "live_enabled": { "label": "Enable live transcriptions", "description": "Enable real-time live transcription for audio streams on this camera." } }, "birdseye": { "label": "Birdseye camera configuration", "description": "Per-camera Birdseye settings controlling inclusion and ordering in the composite view.", "enabled": { "label": "Enable birdseye view for camera", "description": "Include this camera in the Birdseye composite view when enabled." }, "mode": { "label": "Tracking mode for camera", "description": "Mode used when evaluating this camera for Birdseye inclusion (objects, motion, continuous)." }, "order": { "label": "Position of the camera in the birdseye view", "description": "Numeric position controlling the camera's ordering in the Birdseye layout." } }, "detect": { "label": "Object detection configuration", "description": "Settings for the detect role used to run object detection and initialize trackers for this camera.", "enabled": { "label": "Detection Enabled", "description": "Enable or disable object detection for this camera. Detection must be enabled for tracking to run." }, "height": { "label": "Height of the stream for the detect role", "description": "Height (pixels) of frames used for the detect stream; leave empty to use the native stream resolution." }, "width": { "label": "Width of the stream for the detect role", "description": "Width (pixels) of frames used for the detect stream; leave empty to use the native stream resolution." }, "fps": { "label": "Number of frames per second to process through detection", "description": "Desired frames per second to run detection on; lower values reduce CPU usage (recommended ~5)." }, "min_initialized": { "label": "Minimum number of consecutive hits for an object to be initialized by the tracker", "description": "Number of consecutive detection hits required before creating a tracked object. Increase to reduce false initializations." }, "max_disappeared": { "label": "Maximum number of frames the object can disappear before detection ends", "description": "Number of frames without a detection before a tracked object is considered gone." }, "stationary": { "label": "Stationary objects config", "description": "Settings to detect and manage objects that remain stationary for a period of time.", "interval": { "label": "Frame interval for checking stationary objects", "description": "How often (in frames) to run a detection check to confirm a stationary object." }, "threshold": { "label": "Number of frames without a position change for an object to be considered stationary", "description": "Number of frames with no position change required to mark an object as stationary." }, "max_frames": { "label": "Max frames for stationary objects", "description": "Limits how long stationary objects are tracked before being discarded (override defaults to control retention).", "default": { "label": "Default max frames", "description": "Default maximum frames to track a stationary object before stopping." }, "objects": { "label": "Object specific max frames", "description": "Per-object overrides for maximum frames to track stationary objects." } }, "classifier": { "label": "Enable visual classifier for determing if objects with jittery bounding boxes are stationary", "description": "Use a visual classifier to detect truly stationary objects even when bounding boxes jitter." } }, "annotation_offset": { "label": "Milliseconds to offset detect annotations by", "description": "Milliseconds to shift detect annotations to better align timeline bounding boxes with recordings; can be positive or negative." } }, "face_recognition": { "label": "Face recognition config", "description": "Face detection and recognition settings for this camera.", "enabled": { "label": "Enable face recognition", "description": "Enable or disable face recognition processing for this camera." }, "min_area": { "label": "Min area of face box to consider running face recognition", "description": "Minimum area (pixels) of a detected face box required to run recognition." } }, "ffmpeg": { "label": "FFmpeg configuration for the camera", "path": { "label": "FFmpeg path", "description": "Path to the FFmpeg binary to use for this camera, or a version alias." }, "global_args": { "label": "Global FFmpeg arguments", "description": "Global arguments passed to FFmpeg for this camera." }, "hwaccel_args": { "label": "FFmpeg hardware acceleration arguments", "description": "Hardware acceleration arguments to enable GPU/video decoding for this camera." }, "input_args": { "label": "FFmpeg input arguments", "description": "Input-specific FFmpeg args for connecting to the camera stream." }, "output_args": { "label": "FFmpeg output arguments per role", "description": "Output args for FFmpeg by role (detect, record) to control pixel format, threads, and containers.", "detect": { "label": "Detect role FFmpeg output arguments", "description": "FFmpeg output args used for the detect role." }, "record": { "label": "Record role FFmpeg output arguments", "description": "FFmpeg output args used for the record role." } }, "retry_interval": { "label": "Time in seconds to wait before FFmpeg retries connecting to the camera", "description": "Seconds to wait before retrying a camera stream connection; higher values reduce retry churn." }, "apple_compatibility": { "label": "Set tag on HEVC (H.265) recording stream to improve compatibility with Apple players", "description": "Enable tagging on H.265 record streams to improve playback compatibility on Apple devices." }, "gpu": { "label": "GPU index to use for hardware acceleration", "description": "Index of the GPU to use for hardware acceleration for this camera." }, "inputs": { "label": "Camera inputs", "description": "List of input stream definitions (paths and roles) for this camera." } }, "live": { "label": "Live playback settings", "description": "Live view configuration used by the Web UI for this camera.", "streams": { "label": "Friendly names and restream names to use for live view", "description": "Mapping of stream roles to go2rtc/restream names for live playback." }, "height": { "label": "Live camera view height", "description": "Height (pixels) of the jsmpeg live view; must be less than or equal to the detect stream height." }, "quality": { "label": "Live camera view quality", "description": "Encoding quality for live view (1 highest, 31 lowest)." } }, "lpr": { "label": "LPR config", "description": "License plate recognition settings for this camera.", "enabled": { "label": "Enable license plate recognition", "description": "Enable or disable automatic license plate detection/recognition for this camera." }, "expire_time": { "label": "Expire plates not seen after number of seconds (for dedicated LPR cameras only)", "description": "Seconds after which unseen plates recorded by this LPR camera are expired." }, "min_area": { "label": "Minimum area of license plate to begin running recognition", "description": "Minimum detected plate area (pixels) required to run recognition." }, "enhancement": { "label": "Amount of contrast adjustment and denoising to apply to license plate images before recognition", "description": "Level of image enhancement (0-10) applied to plate crops prior to recognition." } }, "motion": { "label": "Motion detection configuration", "enabled": { "label": "Enable motion on all cameras" }, "threshold": { "label": "Motion detection threshold (1-255)" }, "lightning_threshold": { "label": "Lightning detection threshold (0.3-1.0)" }, "improve_contrast": { "label": "Improve Contrast" }, "contour_area": { "label": "Contour Area" }, "delta_alpha": { "label": "Delta Alpha" }, "frame_alpha": { "label": "Frame Alpha" }, "frame_height": { "label": "Frame Height" }, "mask": { "label": "Coordinates polygon for the motion mask" }, "mqtt_off_delay": { "label": "Delay for updating MQTT with no motion detected" }, "enabled_in_config": { "label": "Keep track of original state of motion detection" } }, "objects": { "label": "Object configuration", "track": { "label": "Objects to track" }, "filters": { "label": "Object filters", "min_area": { "label": "Minimum area of bounding box for object to be counted. Can be pixels (int) or percentage (float between 0.000001 and 0.99)", "description": "Minimum area required for detections to be considered for this object filter. Can be pixels or percentage of the frame." }, "max_area": { "label": "Maximum area of bounding box for object to be counted. Can be pixels (int) or percentage (float between 0.000001 and 0.99)", "description": "Maximum area allowed for detections to be considered by this object filter." }, "min_ratio": { "label": "Minimum ratio of bounding box's width/height for object to be counted", "description": "Minimum width/height ratio for the bounding box to qualify for this object filter." }, "max_ratio": { "label": "Maximum ratio of bounding box's width/height for object to be counted", "description": "Maximum width/height ratio for the bounding box to qualify for this object filter." }, "threshold": { "label": "Average detection confidence threshold for object to be counted", "description": "Average detection confidence required for the object to be considered a true positive." }, "min_score": { "label": "Minimum detection confidence for object to be counted", "description": "Minimum single-detection confidence required for the object to be considered." }, "mask": { "label": "Detection area polygon mask for this filter configuration", "description": "Polygon coordinates specifying where this filter should be applied." } }, "mask": { "label": "Object mask" }, "genai": { "label": "Config for using genai to analyze objects", "description": "Settings that control when and how generative AI is used to describe tracked objects for this camera.", "enabled": { "label": "Enable GenAI for camera", "description": "Enable GenAI generation of descriptions for tracked objects on this camera." }, "use_snapshot": { "label": "Use snapshots for generating descriptions", "description": "Use full-size object snapshots (instead of thumbnails) when generating descriptions." }, "prompt": { "label": "Default caption prompt", "description": "Default prompt template used when generating object descriptions with GenAI." }, "object_prompts": { "label": "Object specific prompts", "description": "Per-object custom prompts to tailor GenAI descriptions for specific labels." }, "objects": { "label": "List of objects to run generative AI for", "description": "List of object labels for which GenAI descriptions should be generated." }, "required_zones": { "label": "List of required zones to be entered in order to run generative AI", "description": "Zones an object must enter to qualify for GenAI description generation." }, "debug_save_thumbnails": { "label": "Save thumbnails sent to generative AI for debugging purposes", "description": "Save thumbnails that are sent to GenAI for debugging and review." }, "send_triggers": { "label": "What triggers to use to send frames to generative AI for a tracked object", "description": "Which events or conditions should cause frames to be sent to the GenAI provider for a tracked object.", "tracked_object_end": { "label": "Send once the object is no longer tracked", "description": "Send a description request when the tracked object ends." }, "after_significant_updates": { "label": "Send an early request to generative AI when X frames accumulated", "description": "Send a GenAI request after a specified number of significant updates for the tracked object." } }, "enabled_in_config": { "label": "Keep track of original state of generative AI", "description": "Indicates whether GenAI was enabled for this camera in the original static config." } } }, "record": { "label": "Record configuration", "description": "Recording settings including retention, pre/post capture, previews and export options for this camera.", "enabled": { "label": "Enable record on all cameras", "description": "Enable or disable recording for this camera. If disabled, recording cannot be turned on from the UI." }, "expire_interval": { "label": "Number of minutes to wait between cleanup runs", "description": "Interval in minutes between cleanup runs that remove expired recording segments." }, "continuous": { "label": "Continuous recording retention settings", "days": { "label": "Default retention period" } }, "motion": { "label": "Motion recording retention settings", "days": { "label": "Default retention period" } }, "detections": { "label": "Detection specific retention settings", "pre_capture": { "label": "Seconds to retain before event starts" }, "post_capture": { "label": "Seconds to retain after event ends" }, "retain": { "label": "Event retention settings", "days": { "label": "Default retention period" }, "mode": { "label": "Retain mode" } } }, "alerts": { "label": "Alert specific retention settings", "pre_capture": { "label": "Seconds to retain before event starts" }, "post_capture": { "label": "Seconds to retain after event ends" }, "retain": { "label": "Event retention settings", "days": { "label": "Default retention period" }, "mode": { "label": "Retain mode" } } }, "export": { "label": "Recording Export Config", "hwaccel_args": { "label": "Export-specific FFmpeg hardware acceleration arguments" } }, "preview": { "label": "Recording Preview Config", "quality": { "label": "Quality of recording preview" } }, "enabled_in_config": { "label": "Keep track of original state of recording", "description": "Indicates whether recording was enabled in the original static config for this camera." } }, "review": { "label": "Review configuration", "description": "Per-camera settings that control alerts, detections, and GenAI-assisted review summaries.", "alerts": { "label": "Review alerts config", "description": "Settings that determine which events are saved as alerts for this camera.", "enabled": { "label": "Enable alerts", "description": "Enable or disable alert generation for this camera." }, "labels": { "label": "Labels to create alerts for", "description": "List of labels that should be considered alert-worthy for this camera." }, "required_zones": { "label": "List of required zones to be entered in order to save the event as an alert", "description": "Zones that an object must enter to be considered an alert for this camera." }, "enabled_in_config": { "label": "Keep track of original state of alerts", "description": "Indicates whether alerts were originally enabled in the static config for this camera." }, "cutoff_time": { "label": "Time to cutoff alerts after no alert-causing activity has occurred", "description": "Seconds to wait after no alert-causing activity before cutting off an alert." } }, "detections": { "label": "Review detections config", "description": "Settings for non-alert detections and how they are retained for this camera.", "enabled": { "label": "Enable detections", "description": "Enable or disable detection events for this camera." }, "labels": { "label": "Labels to create detections for", "description": "List of labels that should be recorded as detections for this camera." }, "required_zones": { "label": "List of required zones to be entered in order to save the event as a detection", "description": "Zones that an object must enter to be considered a detection for this camera." }, "cutoff_time": { "label": "Time to cutoff detection after no detection-causing activity has occurred", "description": "Seconds to wait after no detection-causing activity before cutting off a detection." }, "enabled_in_config": { "label": "Keep track of original state of detections", "description": "Indicates whether detections were originally enabled in the static config for this camera." } }, "genai": { "label": "Review description genai config", "description": "Controls use of generative AI for producing descriptions and summaries of review items for this camera.", "enabled": { "label": "Enable GenAI descriptions for review items", "description": "Enable or disable GenAI-generated descriptions and summaries for review items." }, "alerts": { "label": "Enable GenAI for alerts", "description": "Use GenAI to generate descriptions for alert items on this camera." }, "detections": { "label": "Enable GenAI for detections", "description": "Use GenAI to generate descriptions for detection items on this camera." }, "image_source": { "label": "Image source for review descriptions", "description": "Source of images sent to GenAI ('preview' or 'recordings'); recordings use higher quality frames but more tokens." }, "additional_concerns": { "label": "Additional concerns that GenAI should make note of on this camera", "description": "Extra context or concerns that should be included when generating GenAI summaries." }, "debug_save_thumbnails": { "label": "Save thumbnails sent to generative AI for debugging purposes", "description": "Save thumbnails that are sent to GenAI for debugging and review." }, "enabled_in_config": { "label": "Keep track of original state of generative AI", "description": "Indicates whether GenAI review was originally enabled in the static config for this camera." }, "preferred_language": { "label": "Preferred language for GenAI Response", "description": "Preferred language to request from the GenAI provider for generated responses." }, "activity_context_prompt": { "label": "Custom activity context prompt defining normal and suspicious activity patterns for this property", "description": "Custom prompt describing what is and is not suspicious activity to provide context for GenAI summaries." } } }, "semantic_search": { "label": "Semantic search configuration", "description": "Per-camera semantic search trigger configuration to run actions when matches are found.", "triggers": { "label": "Trigger actions on tracked objects that match existing thumbnails or descriptions", "description": "Actions and matching criteria for camera-specific semantic search triggers.", "friendly_name": { "label": "Trigger friendly name used in the Frigate UI" }, "enabled": { "label": "Enable this trigger" }, "type": { "label": "Type of trigger" }, "data": { "label": "Trigger content (text phrase or image ID)" }, "threshold": { "label": "Confidence score required to run the trigger" }, "actions": { "label": "Actions to perform when trigger is matched" } } }, "snapshots": { "label": "Snapshot configuration", "enabled": { "label": "Snapshots enabled", "description": "Enable writing JPEG snapshots for tracked objects for this camera." }, "clean_copy": { "label": "Create a clean copy of the snapshot image", "description": "Save an unannotated copy of each snapshot in addition to any annotated versions." }, "timestamp": { "label": "Add a timestamp overlay on the snapshot", "description": "Overlay a timestamp on saved snapshots for easier review." }, "bounding_box": { "label": "Add a bounding box overlay on the snapshot", "description": "Draw a bounding box on saved snapshots around the tracked object." }, "crop": { "label": "Crop the snapshot to the detected object", "description": "Save snapshots cropped to the detected object's bounding box." }, "required_zones": { "label": "List of required zones to be entered in order to save a snapshot", "description": "Zones that an object must enter to cause a snapshot to be saved for this camera." }, "height": { "label": "Snapshot image height", "description": "Height (pixels) to resize saved snapshots to; leave empty to keep original size." }, "retain": { "label": "Snapshot retention", "default": { "label": "Default retention period" }, "mode": { "label": "Retain mode" }, "objects": { "label": "Object retention period" } }, "quality": { "label": "Quality of the encoded jpeg (0-100)" } }, "timestamp_style": { "label": "Timestamp style configuration", "description": "Style and formatting options for in-feed timestamps applied to recordings and snapshots.", "position": { "label": "Timestamp position" }, "format": { "label": "Timestamp format" }, "color": { "label": "Timestamp color", "red": { "label": "Red" }, "green": { "label": "Green" }, "blue": { "label": "Blue" } }, "thickness": { "label": "Timestamp thickness" }, "effect": { "label": "Timestamp effect" } }, "best_image_timeout": { "label": "How long to wait for the image with the highest confidence score", "description": "Time in seconds to wait before allowing a newer image to replace the highest-confidence image for a tracked object." }, "mqtt": { "label": "MQTT configuration", "enabled": { "label": "Send image over MQTT", "description": "Enable publishing image snapshots for objects to MQTT topics for this camera." }, "timestamp": { "label": "Add timestamp to MQTT image", "description": "Overlay a timestamp on images published to MQTT." }, "bounding_box": { "label": "Add bounding box to MQTT image", "description": "Draw bounding boxes on images published over MQTT." }, "crop": { "label": "Crop MQTT image to detected object", "description": "Crop images published to MQTT to the detected object's bounding box." }, "height": { "label": "MQTT image height", "description": "Height (pixels) to resize images published over MQTT." }, "required_zones": { "label": "List of required zones to be entered in order to send the image", "description": "Zones that an object must enter for an MQTT image to be published." }, "quality": { "label": "Quality of the encoded jpeg (0-100)", "description": "JPEG quality for images published to MQTT (0-100)." } }, "notifications": { "label": "Notifications configuration", "enabled": { "label": "Enable notifications", "description": "Enable or disable notifications (push/email) for this camera." }, "email": { "label": "Email required for push", "description": "Email address used for push notification delivery if required." }, "cooldown": { "label": "Cooldown period for notifications (time in seconds)", "description": "Cooldown period (seconds) between notifications to avoid spamming." }, "enabled_in_config": { "label": "Keep track of original state of notifications", "description": "Indicates whether notifications were enabled in the original static config for this camera." } }, "onvif": { "label": "Camera Onvif Configuration", "host": { "label": "Onvif Host", "description": "Host (and optional scheme) for the ONVIF service for this camera." }, "port": { "label": "Onvif Port", "description": "Port number for the ONVIF service." }, "user": { "label": "Onvif Username", "description": "Username for ONVIF authentication; some devices require admin user for ONVIF." }, "password": { "label": "Onvif Password", "description": "Password for ONVIF authentication." }, "tls_insecure": { "label": "Onvif Disable TLS verification", "description": "Skip TLS verification and disable digest auth for ONVIF (unsafe; use in safe networks only)." }, "autotracking": { "label": "PTZ auto tracking config", "enabled": { "label": "Enable PTZ object autotracking" }, "calibrate_on_startup": { "label": "Perform a camera calibration when Frigate starts" }, "zooming": { "label": "Autotracker zooming mode" }, "zoom_factor": { "label": "Zooming factor (0.1-0.75)" }, "track": { "label": "Objects to track" }, "required_zones": { "label": "List of required zones to be entered in order to begin autotracking" }, "return_preset": { "label": "Name of camera preset to return to when object tracking is over" }, "timeout": { "label": "Seconds to delay before returning to preset" }, "movement_weights": { "label": "Internal value used for PTZ movements based on the speed of your camera's motor" }, "enabled_in_config": { "label": "Keep track of original state of autotracking" } }, "ignore_time_mismatch": { "label": "Onvif Ignore Time Synchronization Mismatch Between Camera and Server" } }, "type": { "label": "Camera Type", "description": "Type of camera for Frigate features (for example 'generic' or 'lpr')." }, "ui": { "label": "Camera UI Modifications", "order": { "label": "Order of camera in UI", "description": "Numeric order used to sort the camera in the UI; larger numbers appear later." }, "dashboard": { "label": "Show this camera in Frigate dashboard UI", "description": "Toggle whether this camera is visible in the main dashboard." } }, "webui_url": { "label": "URL to visit the camera directly from system page", "description": "Optional URL that links directly to the camera's native web UI from the system page." }, "zones": { "label": "Zone configuration", "friendly_name": { "label": "Zone friendly name used in the Frigate UI", "description": "Human-friendly name for the zone displayed in the UI." }, "filters": { "label": "Zone filters", "description": "Per-zone filters that further restrict which detections qualify inside this zone.", "min_area": { "label": "Minimum area of bounding box for object to be counted. Can be pixels (int) or percentage (float between 0.000001 and 0.99)", "description": "Minimum area for detections inside the zone to be considered (pixels or percentage)." }, "max_area": { "label": "Maximum area of bounding box for object to be counted. Can be pixels (int) or percentage (float between 0.000001 and 0.99)", "description": "Maximum area for detections inside the zone to be considered." }, "min_ratio": { "label": "Minimum ratio of bounding box's width/height for object to be counted", "description": "Minimum width/height ratio for detections inside the zone to be considered." }, "max_ratio": { "label": "Maximum ratio of bounding box's width/height for object to be counted", "description": "Maximum width/height ratio for detections inside the zone to be considered." }, "threshold": { "label": "Average detection confidence threshold for object to be counted", "description": "Average confidence threshold for detections inside the zone to be considered." }, "min_score": { "label": "Minimum detection confidence for object to be counted", "description": "Minimum single detection confidence required for objects inside the zone." }, "mask": { "label": "Detection area polygon mask for this filter configuration", "description": "Polygon coordinates to further limit where this zone filter applies." } }, "coordinates": { "label": "Coordinates polygon for the defined zone", "description": "Ordered x,y coordinates defining the zone polygon used for zone membership checks." }, "distances": { "label": "Real-world distances for the sides of quadrilateral for the defined zone", "description": "Real-world distances corresponding to the zone corners used for speed estimation." }, "inertia": { "label": "Number of consecutive frames required for object to be considered present in the zone", "description": "Number of consecutive frames an object must be present to be considered in the zone." }, "loitering_time": { "label": "Number of seconds that an object must loiter to be considered in the zone", "description": "Number of seconds an object must remain in the zone to be considered loitering." }, "speed_threshold": { "label": "Minimum speed value for an object to be considered in the zone", "description": "Minimum estimated speed required for an object to count for speed-based zone logic." }, "objects": { "label": "List of objects that can trigger the zone", "description": "List of object labels allowed to trigger zone-related events." } }, "enabled_in_config": { "label": "Keep track of original state of camera", "description": "Indicates whether this camera was enabled in the original static configuration." } }