跳到主要内容

高级选项

logger

更改默认日志级别,以便排除故障。

logger:
# 可选:默认日志级别(默认值:如下所示)
default: info
# 可选:按模块配置日志级别
logs:
frigate.mqtt: error

可用的日志级别有:debug, info, warning, error, critical

可用模块举例如下:

  • frigate.app
  • frigate.mqtt
  • frigate.object_detection
  • detector.<detector_name>
  • watchdog.<camera_name>
  • ffmpeg.<camera_name>.<sorted_roles> NOTE: All FFmpeg logs are sent as error level.

environment_vars

该部分可用于为无法修改容器环境的用户(即在 HassOS 内)设置环境变量

Example:

environment_vars:
VARIABLE_NAME: variable_value

database

事件和录像信息由位于 /config/frigate.db的 sqlite 数据库管理。如果删除该数据库,录像将成为孤儿,需要手动清理。它们也不会显示在 Home Assistant 的媒体浏览器中。

如果将数据库存储在网络共享(SMB、NFS 等)上,可能会在启动时收到 database is locked 的错误信息。如有必要,您可以在配置中自定义数据库的位置。

如果媒体文件夹使用的是网络存储,则可能需要将其放在自定义位置。

database:
path: /path/to/frigate.db

model

如果使用自定义模型,则需要指定宽度和高度。

自定义模型也可能需要不同的输入 tensor 格式。色彩空间转换支持将 RGB、BGR 或 YUV 帧发送到目标检测器。input tensor shape 参数是一个枚举,与模型指定的形状相匹配。

Tensor DimensionDescription
NBatch Size
HModel Height
WModel Width
CColor Channels
Available Input Tensor Shapes
"nhwc"
"nchw"
# 可选:模型配置
model:
path: /path/to/model
width: 320
height: 320
input_tensor: "nhwc"
input_pixel_format: "bgr"

labelmap 可以根据需要进行定制。这样做的一个常见原因是在不需要那么细化的情况下,将容易混淆的多个目标类型组合在一起,例如汽车/卡车。默认情况下,卡车被重命名为汽车,因为它们经常被混淆。您不能添加新的目标类型,但可以更改模型中现有目标的名称。

model:
labelmap:
2: vehicle
3: vehicle
5: vehicle
7: vehicle
15: animal
16: animal
17: animal

请注意,如果重新命名 labelmap 中的目标,还需要更新 objects -> track 列表。

警告

某些标签有特殊处理方法,修改后可能会禁用其功能。

face 相关联 机动车license plate 相关联

定制 ffmpeg 构建

Frigate 附带的 ffmpeg 版本适用于绝大多数用户。不过,有些硬件设置与附带的版本不兼容。在这种情况下,可以使用 docker 卷映射,用适用于你的特定硬件设置的 ffmpeg 版本来覆盖附带的 ffmpeg 版本。

这样做:

  1. 下载 ffmpeg 构建文件,解压缩到主机上的文件夹(本例中使用 /home/appdata/frigate/custom-ffmpeg)。
  2. 更新 docker-compose 或 docker CLI,在卷映射中加入'/home/appdata/frigate/custom-ffmpeg':'/usr/lib/btbn-ffmpeg':'ro'
  3. 重新启动 Frigate,如果映射正确,将使用定制版本。

注意:从主机映射的文件夹必须是包含 /bin 的文件夹。因此,如果完整结构是 /home/appdata/frigate/custom-ffmpeg/bin/ffmpeg,那么 /home/appdata/frigate/custom-ffmpeg 需要映射到 /usr/lib/btbn-ffmpeg

定制 go2rtc 版本

Frigate 目前包含 go2rtc v1.8.4,在某些情况下可能需要运行不同版本的 go2rtc。

这样做:

  1. 将 go2rtc 构建文件下载到 /config 文件夹。
  2. 构建文件重命名为 go2rtc
  3. 授予 go2rtc 可执行权限。
  4. 重启 Frigate 后,将使用定制版本,可以通过查看 go2rtc 日志进行验证。

验证 config.yaml 文件更新

当 Frigate 启动时,它会检查配置文件是否有效,如果无效,进程就会退出。为了尽量减少更新配置时的中断,你有三种选择:通过内置验证功能的 WebUI 编辑配置;使用配置 API;或者使用 Frigate docker 容器在命令行上进行验证。

通过 API

Frigate 可以通过 /config/save 端点接受 JSON 格式的新配置文件。以这种方式更新配置时,Frigate 会在保存前验证配置,如果配置无效,则返回 400

curl -X POST http://frigate_host:5000/config/save -d @config.json

如果你愿意,可以直接使用 yaml 配置,使用 yq 将其转换为 json:

yq r -j config.yml | curl -X POST http://frigate_host:5000/config/save -d @-

通过命令行

你也可以使用 docker 容器本身在命令行上验证配置。在 CI/CD 中,你可以利用返回代码来确定配置是否有效,如果配置无效,Frigate 将返回 1,如果有效,则返回 0

docker run                                \
-v $(pwd)/config.yml:/config/config.yml \
--entrypoint python3 \
frigate:stable \
-u -m frigate \
--validate_config