Files
frigate/docs/docs/configuration/cameras.md
T
Josh Hawkins 9df5927ac5 Autotracking bugfixes and zooming updates (#8103)
* zoom in/out in search for lost objects

* predicted box should not be empty

* clean up and update zoom logic

* only zoom if enabled

* more cleanup

* check for valid velocity when zooming

* only try absolute zoom in if obj area has changed

* zoom logic

* don't enqueue lost object zoom if already at limit

* don't disable motion boxes during ptz moves

* velocity threshold based on move coefficients

* fix area zoom logic

* disable debug zoom

* don't process objects if ptz moving

* recalc with exponent

* change exponent

* remove lost object zooming

* increase distance threshold for stationary object

* increase distance threshold constant

* only zoom out if nonzero

* camera name in all debug logging

* add camera name to debug logging

* camera variable name consistency

* update calibration behavior and docs

* docs and better zooming

* more sensible target values

* docs wording

* fix velocity threshold variable

* zooming tweaks and remove iou for current objects

* debug and docs

* get valid velocity

* include zero

* additional debug statements

* add zoom hysteresis

* zoom on initial move if relative

* only update target box if we actually zoom

* merge dev

* use getattr instead of get

* increase distance threshold

* reverse logic

* get_camera_status after preset move to store zoom

* final tweaks and docs

* use constants and catch possible debug exception

* adjust zoom factor exponent

* don't run motion estimation when calling preset

* adjust dimension threshold

* use numpy for velocity estimate calcs

* more numpy conversion

* fix numpy shapes

* numpy zeros dimension

* more zoom out conditions

* fix velocity bug

* ensure init has been called in debug view

* ensure onvif init if enabling by mqtt

* change default hysteresis values

* recalc relative zoom value

* zoom out value

* try to zoom when object isn't moving

* try zoom when tracked object is not moving

* don't try to zoom every time

* negate zoom out condition when needed

* hysteresis constants for absolute zooming

* update zoom conditions

* don't recalc target box on zoom only

* zoom out if above area threshold

* don't print zooming debug for stationary obj

* revamp zooming to use area moving average

* zooming tweaks and expose property

* limit zoom with max target box

* use calibration to determine zoom levels

* zoom logic fix

* docs

* add tapo c200 camera

* fix initial absolute zoom

* small zoom logic fix

* better invalid velocity checks

* fix test

* really fix test this time
2023-10-22 12:59:13 -04:00

6.2 KiB
Raw Blame History

id, title
id title
cameras Camera Configuration

Setting Up Camera Inputs

Several inputs can be configured for each camera and the role of each input can be mixed and matched based on your needs. This allows you to use a lower resolution stream for object detection, but create recordings from a higher resolution stream, or vice versa.

A camera is enabled by default but can be temporarily disabled by using enabled: False. Existing events and recordings can still be accessed. Live streams, recording and detecting are not working. Camera specific configurations will be used.

Each role can only be assigned to one input per camera. The options for roles are as follows:

Role Description
detect Main feed for object detection. docs
record Saves segments of the video feed based on configuration settings. docs
audio Feed for audio based detection. docs
rtmp Deprecated: Broadcast as an RTMP feed for other services to consume. docs
mqtt:
  host: mqtt.server.com
cameras:
  back:
    enabled: True
    ffmpeg:
      inputs:
        - path: rtsp://viewer:{FRIGATE_RTSP_PASSWORD}@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2
          roles:
            - detect
            - rtmp # <- deprecated, recommend using restream instead
        - path: rtsp://viewer:{FRIGATE_RTSP_PASSWORD}@10.0.10.10:554/live
          roles:
            - record
    detect:
      width: 1280 # <- optional, by default Frigate tries to automatically detect resolution
      height: 720 # <- optional, by default Frigate tries to automatically detect resolution

Additional cameras are simply added to the config under the cameras entry.

mqtt: ...
cameras:
  back: ...
  front: ...
  side: ...

For camera model specific settings check the camera specific infos.

Setting up camera PTZ controls

:::caution

Not every PTZ supports ONVIF, which is the standard protocol Frigate uses to communicate with your camera. Check the official list of ONVIF conformant products, your camera documentation, or camera manufacturer's website to ensure your PTZ supports ONVIF. Also, ensure your camera is running the latest firmware.

:::

Add the onvif section to your camera in your configuration file:

cameras:
  back:
    ffmpeg: ...
    onvif:
      host: 10.0.10.10
      port: 8000
      user: admin
      password: password

If the ONVIF connection is successful, PTZ controls will be available in the camera's WebUI.

An ONVIF-capable camera that supports relative movement within the field of view (FOV) can also be configured to automatically track moving objects and keep them in the center of the frame. For autotracking setup, see the autotracking docs.

ONVIF PTZ camera recommendations

This list of working and non-working PTZ cameras is based on user feedback.

Brand or specific camera PTZ Controls Autotracking Notes
Amcrest ✅ ✅ ⛔️ Generally, Amcrest should work, but some older models (like the common IP2M-841) don't support autotracking
Amcrest ASH21 ❌ ❌ No ONVIF support
Ctronics PTZ ✅ ❌
Dahua ✅ ✅
Foscam R5 ✅ ❌
Hikvision ✅ ❌ Incomplete ONVIF support (MoveStatus won't update even on latest firmware) - reported with HWP-N4215IH-DE and DS-2DE3304W-DE, but likely others
Reolink 511WA ✅ ❌ Zoom only
Reolink E1 Pro ✅ ❌
Reolink E1 Zoom ✅ ❌
Sunba 405-D20X ✅ ❌
Tapo C200 ✅ ❌ Incomplete ONVIF support
Tapo C210 ❌ ❌ Incomplete ONVIF support
Vikylin PTZ-2804X-I2 ❌ ❌ Incomplete ONVIF support