高级选项
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 aserror
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 Dimension | Description |
---|---|
N | Batch Size |
H | Model Height |
W | Model Width |
C | Color 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 版本。
这样做:
- 下载 ffmpeg 构建文件,解压缩到主机上的文件夹(本例中使用
/home/appdata/frigate/custom-ffmpeg
)。 - 更新 docker-compose 或 docker CLI,在卷映射中加入
'/home/appdata/frigate/custom-ffmpeg':'/usr/lib/btbn-ffmpeg':'ro'
。 - 重新启动 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。
这样做:
- 将 go2rtc 构建文件下载到 /config 文件夹。
- 构建文件重命名为
go2rtc
。 - 授予
go2rtc
可执行权限。 - 重启 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