全局配置与摄像头级配置
Frigate 的大部分配置可以一次性为所有摄像头设置,然后为各个摄像头单独调整。全局值作为每个摄像头的默认值,任何摄像头都可以覆盖它。
本页面解释了这种继承机制的工作原理。有关设置界面本身的介绍,请参阅 Frigate 配置。
基础原理
在全局设置一个值,所有摄像头都会使用它。在某个摄像头上设置相同的值,该摄像头将使用自己的值。
现在 前门 摄像头以 10 fps 检测。其他所有摄像头仍然使用全局值 5。
覆盖按值应用,而非按部分
覆盖某个部分中的一个值不会使该部分的其他值脱离。你在摄像头上未设置的所有内容仍然来自全局配置。
如果你设置摄像头的画面变动阈值但保留轮廓区域不变,则只有阈值被覆盖。轮廓区域继续遵循全局配置,在全局处更改仍会影响该摄像头。
打开某个部分以查看哪些值被覆盖:部分标题会指示有多少字段与全局配置不同。
将摄像头恢复为全局值
拥有自己值的摄像头部分会显示 已覆盖 徽章。要移除覆盖并恢复继承,使用部分底部的 重置为全局 按钮。
列表替换,映射合并
这是最容易让人感到意外的区别。
列表会完全替换。 摄像头的列表不会添加到全局列表中,而是取代它。
摄像头页面显示该摄像头当前正在追踪的目标,从全局列表开始。在摄像头配置下更改选择会替换该摄像头的列表,因此请确保你想要追踪的每个目标都被选中,而不仅仅是你正在添加的那些。
空列表是一个有效的覆盖,是让摄像头退出某项功能的常规方式:
review:
alerts:
labels:
- person
cameras:
street:
review:
alerts:
labels: [] # 此摄像头永不创建警报映射是逐键合并的。 摄像头可以添加一个条目而无需重新声明其他条目。
在摄像头配置下为一个目标添加过滤器,不会移除从全局配置继承的过滤器。摄像头保留两者。
哪些设置可以被覆盖
大多数可以,但不是全部。完整参考配置是权威来源:支持摄像头级覆盖的部分标记有注释 # NOTE: Can be overridden at the camera level。在界面中,如果某个设置同时出现在 和 下,则可以被覆盖。
此外,还有一些值得了解的要点:
- 有些部分仅限全局,没有摄像头级对应项,包括
go2rtc、genai提供者、classification、telemetry、camera_groups和ui。 - 有些部分仅存在于摄像头级别,如
zones和onvif。 - 有些部分是部分可覆盖的,意味着摄像头只接受全局可用键中的少数几个。
face_recognition、lpr和audio_transcription以这种方式工作,参考配置中注明了哪些键适用。
必须在全局先启用的增强功能
车牌识别和人脸识别比较特殊:全局设置不仅仅是一个默认值,它是一个开关,必须在任何摄像头使用该功能之前处于开启状态。在全局禁用时在摄像头上启用它是配置错误,Frigate 将拒绝启动:
Camera driveway has lpr enabled but lpr is disabled at the global level of the config. You must enable lpr at the global level.在全局启用该功能,然后在不需要的摄像头上将其关闭。
NOTE
这仅适用于 lpr 和 face_recognition,因为全局设置控制着支持性后台进程是否启动。其他功能的工作方式不同。例如,音频转录可以在单个摄像头上启用,而无需在全局启用。
模板(Profiles)
模板在以上所有内容的基础上增加了额外的层级。模板是一组命名的摄像头覆盖,你可以在 Frigate 运行时开启或关闭,例如在离家时更改检测和录制行为。
模板应用在摄像头已解析的配置之上,因此当模板处于活动状态时,模板值胜过摄像头值和全局值。模板覆盖摄像头部分的一个子集,并且不会修改你的配置文件。
总结
- 摄像头继承你未在其上设置的每个值。
- 覆盖一个值不会使该部分的其他值脱离。
- 在摄像头上写入一个值会覆盖它,即使它与全局值匹配也是如此。删除它以重新继承。
- 列表替换全局列表。映射合并到其中。
- 空列表是一个覆盖,而不是省略。
lpr和face_recognition必须先在全局启用,摄像头才能使用它们。