web_port: 5000 mqtt: host: mqtt.server.com topic_prefix: frigate # client_id: frigate # Optional -- set to override default client id of 'frigate' if running multiple instances # user: username # Optional ################# ## Environment variables that begin with 'FRIGATE_' may be referenced in {}. ## password: '{FRIGATE_MQTT_PASSWORD}' ################# # password: password # Optional ################# # Default ffmpeg args. Optional and can be overwritten per camera. # Should work with most RTSP cameras that send h264 video # Built from the properties below with: # "ffmpeg" + global_args + input_args + "-i" + input + output_args ################# # ffmpeg: # global_args: # - -hide_banner # - -loglevel # - panic # hwaccel_args: [] # input_args: # - -avoid_negative_ts # - make_zero # - -fflags # - nobuffer # - -flags # - low_delay # - -strict # - experimental # - -fflags # - +genpts+discardcorrupt # - -vsync # - drop # - -rtsp_transport # - tcp # - -stimeout # - '5000000' # - -use_wallclock_as_timestamps # - '1' # output_args: # - -f # - rawvideo # - -pix_fmt # - rgb24 #################### # Global object configuration. Applies to all cameras # unless overridden at the camera levels. # Keys must be valid labels. By default, the model uses coco (https://dl.google.com/coral/canned_models/coco_labels.txt). # All labels from the model are reported over MQTT. These values are used to filter out false positives. # min_area (optional): minimum width*height of the bounding box for the detected person # max_area (optional): maximum width*height of the bounding box for the detected person # threshold (optional): The minimum decimal percentage (50% hit = 0.5) for the confidence from tensorflow #################### objects: track: - person - car - truck filters: person: min_area: 5000 max_area: 100000 threshold: 0.8 zones: ################# # Name of the zone ################ front_steps: front_door: #################### # For each camera, a list of x,y coordinates to define the polygon of the zone. The top # left corner is 0,0. Can also be a comma separated string of all x,y coordinates combined. # The same zone can exist across multiple cameras if they have overlapping FOVs. # An object is determined to be in the zone based on whether or not the bottom center # of it's bounding box is within the polygon. The polygon must have at least 3 points. # Coordinates can be generated at https://www.image-map.net/ #################### coordinates: - 545,1077 - 747,939 - 788,805 ################ # Zone level object filters. These are applied in addition to the global and camera filters # and should be more restrictive than the global and camera filters. The global and camera # filters are applied upstream. ################ filters: person: min_area: 5000 max_area: 100000 threshold: 0.8 driveway: front_door: coordinates: 545,1077,747,939,788,805 yard: cameras: back: ffmpeg: ################ # Source passed to ffmpeg after the -i parameter. Supports anything compatible with OpenCV and FFmpeg. # Environment variables that begin with 'FRIGATE_' may be referenced in {} ################ input: rtsp://viewer:{FRIGATE_RTSP_PASSWORD}@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2 ################# # These values will override default values for just this camera ################# # global_args: [] # hwaccel_args: [] # input_args: [] # output_args: [] ################ ## Optionally specify the resolution of the video feed. Frigate will try to auto detect if not specified ################ # height: 1280 # width: 720 ################ ## Optional mask. Must be the same aspect ratio as your video feed. Value is either the ## name of a file in the config directory or a base64 encoded bmp image prefixed with ## 'base64,' eg. 'base64,asfasdfasdf....'. ## ## The mask works by looking at the bottom center of the bounding box for the detected ## person in the image. If that pixel in the mask is a black pixel, it ignores it as a ## false positive. In my mask, the grass and driveway visible from my backdoor camera ## are white. The garage doors, sky, and trees (anywhere it would be impossible for a ## person to stand) are black. ## ## Masked areas are also ignored for motion detection. ################ # mask: back-mask.bmp ################ # Allows you to limit the framerate within frigate for cameras that do not support # custom framerates. A value of 1 tells frigate to look at every frame, 2 every 2nd frame, # 3 every 3rd frame, etc. ################ take_frame: 1 ################ # This will save a clip for each tracked object by frigate along with a json file that contains # data related to the tracked object. This works by telling ffmpeg to write video segments to /cache # from the video stream without re-encoding. Clips are then created by using ffmpeg to merge segments # without re-encoding. The segments saved are unaltered from what frigate receives to avoid re-encoding. # They do not contain bounding boxes. 30 seconds of video is added to the start of the clip. These are # optimized to capture "false_positive" examples for improving frigate. # # NOTE: This will only work for camera feeds that can be copied into the mp4 container format without # encoding such as h264. I do not expect this to work for mjpeg streams, and it may not work for many other # types of streams. # # WARNING: Videos in /cache are retained until there are no ongoing events. If you are tracking cars or # other objects for long periods of time, the cache will continue to grow indefinitely. ################ save_clips: enabled: False ######### # Number of seconds before the event to include in the clips ######### pre_capture: 30 ################ # Configuration for the snapshots in the debug view and mqtt ################ snapshots: show_timestamp: True draw_zones: False ################ # Camera level object config. This config is merged with the global config above. ################ objects: track: - person filters: person: min_area: 5000 max_area: 100000 threshold: 0.8