mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-05-04 04:27:42 +03:00
211 lines
4.2 KiB
Markdown
211 lines
4.2 KiB
Markdown
|
|
---
|
|||
|
|
id: advanced
|
|||
|
|
title: 高级配置选项
|
|||
|
|
sidebar_label: 高级选项
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 日志配置
|
|||
|
|
|
|||
|
|
#### Frigate日志设置
|
|||
|
|
|
|||
|
|
可调整日志级别用于故障排查。
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
logger:
|
|||
|
|
# 可选:默认日志级别(默认如下)
|
|||
|
|
default: info
|
|||
|
|
# 可选:按模块设置日志级别
|
|||
|
|
logs:
|
|||
|
|
frigate.mqtt: error
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
可用日志级别:`debug`, `info`, `warning`, `error`, `critical`
|
|||
|
|
|
|||
|
|
可配置模块示例:
|
|||
|
|
- `frigate.app`
|
|||
|
|
- `frigate.mqtt`
|
|||
|
|
- `frigate.object_detection`
|
|||
|
|
- `detector.<检测器名称>`
|
|||
|
|
- `watchdog.<摄像头名称>`
|
|||
|
|
- `ffmpeg.<摄像头名称>.<角色>` 注意:所有FFmpeg日志均以`error`级别记录
|
|||
|
|
|
|||
|
|
#### Go2RTC日志设置
|
|||
|
|
|
|||
|
|
参考[go2rtc文档](https://github.com/AlexxIT/go2rtc?tab=readme-ov-file#module-log)配置日志
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
go2rtc:
|
|||
|
|
streams:
|
|||
|
|
# ...
|
|||
|
|
log:
|
|||
|
|
exec: trace
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 环境变量
|
|||
|
|
|
|||
|
|
此配置项适用于无法直接修改容器环境的情况(如Home Assistant OS)。
|
|||
|
|
|
|||
|
|
示例:
|
|||
|
|
```yaml
|
|||
|
|
environment_vars:
|
|||
|
|
变量名: 变量值
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 数据库配置
|
|||
|
|
|
|||
|
|
追踪对象和录像信息存储在`/config/frigate.db`的SQLite数据库中。若删除该数据库,录像文件将变为孤立文件需手动清理,且不会显示在Home Assistant的媒体浏览器中。
|
|||
|
|
|
|||
|
|
若使用网络存储(SMB/NFS等),启动时可能出现`database is locked`错误。可自定义数据库路径:
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
database:
|
|||
|
|
path: /自定义路径/frigate.db
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 模型配置
|
|||
|
|
|
|||
|
|
使用自定义模型时需指定宽高尺寸。
|
|||
|
|
|
|||
|
|
自定义模型可能需要不同的输入张量格式。支持RGB、BGR或YUV色彩空间转换。输入张量形状参数需与模型要求匹配。
|
|||
|
|
|
|||
|
|
| 张量维度 | 描述 |
|
|||
|
|
|---------|-------------|
|
|||
|
|
| N | 批量大小 |
|
|||
|
|
| H | 模型高度 |
|
|||
|
|
| W | 模型宽度 |
|
|||
|
|
| C | 色彩通道数 |
|
|||
|
|
|
|||
|
|
| 可用输入张量形状 |
|
|||
|
|
|----------------|
|
|||
|
|
| "nhwc" |
|
|||
|
|
| "nchw" |
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
model:
|
|||
|
|
path: /模型路径
|
|||
|
|
width: 320
|
|||
|
|
height: 320
|
|||
|
|
input_tensor: "nhwc"
|
|||
|
|
input_pixel_format: "bgr"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 标签映射
|
|||
|
|
|
|||
|
|
:::warning
|
|||
|
|
自定义标签映射后需同步调整[警报标签](/configuration/review.md#限制警报的标签类型)配置
|
|||
|
|
:::
|
|||
|
|
|
|||
|
|
可自定义标签映射,常见场景是合并易混淆的物体类型(如car/truck)。默认已将truck重命名为car。
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
model:
|
|||
|
|
labelmap:
|
|||
|
|
2: vehicle
|
|||
|
|
3: vehicle
|
|||
|
|
5: vehicle
|
|||
|
|
7: vehicle
|
|||
|
|
15: animal
|
|||
|
|
16: animal
|
|||
|
|
17: animal
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
:::warning
|
|||
|
|
部分标签有特殊处理逻辑:
|
|||
|
|
- `person`关联`face`和`amazon`
|
|||
|
|
- `car`关联`license_plate`, `ups`, `fedex`, `amazon`
|
|||
|
|
:::
|
|||
|
|
|
|||
|
|
## 网络配置
|
|||
|
|
|
|||
|
|
可通过绑定挂载nginx.conf文件修改内部网络配置:
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
services:
|
|||
|
|
frigate:
|
|||
|
|
volumes:
|
|||
|
|
- /自定义路径/nginx.conf:/usr/local/nginx/conf/nginx.conf
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 启用IPv6
|
|||
|
|
|
|||
|
|
默认禁用IPv6,需修改listen.gotmpl文件:
|
|||
|
|
|
|||
|
|
原始配置:
|
|||
|
|
```
|
|||
|
|
listen 8971;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
修改为:
|
|||
|
|
```
|
|||
|
|
listen [::]:8971 ipv6only=off;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 基础路径
|
|||
|
|
|
|||
|
|
默认运行在根路径(`/`),反向代理场景可能需要自定义路径前缀(如`/frigate`)。
|
|||
|
|
|
|||
|
|
### 通过HTTP头设置
|
|||
|
|
|
|||
|
|
推荐方式是在反向代理中设置`X-Ingress-Path`头:
|
|||
|
|
|
|||
|
|
Nginx示例:
|
|||
|
|
```
|
|||
|
|
location /frigate {
|
|||
|
|
proxy_set_header X-Ingress-Path /frigate;
|
|||
|
|
proxy_pass http://frigate_backend;
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 通过环境变量设置
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
services:
|
|||
|
|
frigate:
|
|||
|
|
environment:
|
|||
|
|
- FRIGATE_BASE_PATH=/frigate
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 自定义依赖
|
|||
|
|
|
|||
|
|
### 自定义FFmpeg
|
|||
|
|
|
|||
|
|
将静态编译的`ffmpeg`和`ffprobe`放入`/config/custom-ffmpeg/bin`:
|
|||
|
|
|
|||
|
|
1. 下载FFmpeg并解压到`/config/custom-ffmpeg`
|
|||
|
|
2. 更新配置:
|
|||
|
|
```yaml
|
|||
|
|
ffmpeg:
|
|||
|
|
path: /config/custom-ffmpeg
|
|||
|
|
```
|
|||
|
|
3. 重启Frigate
|
|||
|
|
|
|||
|
|
### 自定义go2rtc版本
|
|||
|
|
|
|||
|
|
1. 下载go2rtc到`/config`目录
|
|||
|
|
2. 重命名为`go2rtc`
|
|||
|
|
3. 添加执行权限
|
|||
|
|
4. 重启Frigate
|
|||
|
|
|
|||
|
|
## 配置文件验证
|
|||
|
|
|
|||
|
|
更新配置时可通过以下方式验证:
|
|||
|
|
|
|||
|
|
### 通过API验证
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST http://frigate_host:5000/api/config/save -d @config.json
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
或使用yq转换yaml:
|
|||
|
|
```bash
|
|||
|
|
yq r -j config.yml | curl -X POST http://frigate_host:5000/api/config/save -d @-
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 命令行验证
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
docker run -v $(pwd)/config.yml:/config/config.yml \
|
|||
|
|
--entrypoint python3 \
|
|||
|
|
ghcr.io/blakeblackshear/frigate:stable \
|
|||
|
|
-u -m frigate --validate-config
|
|||
|
|
```
|