资讯动态

Frigate 第三方扩展生态全景:11 个高价值插件与它们的 REST API / MQTT 接入方式

发布时间:2026/9/10 19:00:31 来源:尧图企业网站定制
Frigate 第三方扩展生态全景11 个高价值插件与它们的 REST API / MQTT 接入方式【免费下载链接】frigateNVR with realtime local object detection for IP cameras项目地址: https://gitcode.com/GitHub_Trending/fr/frigateFrigate 是开源的家用 NVR网络录像机其核心价值之一在于开放——它不仅自身功能丰富还通过一套稳定的集成接口REST API 与 MQTT 消息总线允许社区在其之上构建各类扩展。本篇文章以仓库内 docs/docs/integrations/third_party_extensions.md 文档为主干逐一梳理 11 个围绕 Frigate 构建的第三方项目并结合当前仓库源码深入讲解这些扩展所依赖的集成机制内部 API 端口、认证模型、事件/审查数据结构、MQTT 主题体系。读完本文你将理解第三方工具如何与 Frigate 通信并能根据自身场景通知、人脸识别、自然语言查询、大屏展示、媒体备份等选型与接入对应扩展。注意本文仅作客观梳理不对任何扩展项目进行推荐或评级。文中的项目均来自官方文档收录的社区项目清单清单本身不设上限任何人均可通过向 Frigate 文档提交 PR 来补充新项目。安装任何第三方软件前请务必自行评估与审查其安全性。Frigate 为何能拥有第三方扩展生态开放而稳定的集成接口官方文档明确写道绝大多数第三方服务的设计目标是与 Frigate 在 5000 端口上的免认证 API 对接。这句话背后对应的是 Frigate 当前仓库中一套真实的网络与认证架构我们先用源码把它讲透。REST API默认内部端口 5000外部端口 8971Frigate 的监听端口定义在 frigate/config/network.py 的ListenConfig中internal内部监听端口默认5000external外部监听端口默认8971两者必须不同有validate_distinct_ports校验internal_port/external_port属性会把address:port形式的配置解析成纯端口号。配置注释还特别说明对绝大多数用户而言更推荐直接在 Docker Compose 的 ports 段修改端口映射而非改动该配置。因此5000 端口是 Frigate 容器内部的默认 API 端口第三方扩展若与 Frigate 运行在同一网络如同一 docker-compose 项目或同一 Docker 网络即可直接访问。为什么内部端口可以免认证/auth 端点的特殊处理免认证 API并非没有认证而是有一套基于反向代理的信任模型。Frigate 容器内由 nginx 充当网关nginx 会为每个请求打上x-server-port头再由/auth端点完成身份注入。在 frigate/api/auth.py 中可以看到核心逻辑# dont require auth if the request is on the internal port # this header is set by Frigates nginx proxy, so it cant be spoofed. if ( int(request.headers.get(x-server-port, default0)) request.app.auth_internal_port ): success_response.headers[remote-user] anonymous success_response.headers[remote-role] admin return success_response也就是说通过内部端口默认 5000进入的请求会被自动标记为remote-user: anonymous、remote-role: admin从而绕过登录而外部端口默认 8971的请求则必须走完整认证流程。这正是官方文档所称unauthenticated api over port 5000的底层实现——x-server-port头由 Frigate 自己的 nginx 设置无法被外部伪造相关认证边界说明也记录在 frigate/api/auth.py 的allow_any_authenticated依赖中。所有 API 路由都在 frigate/api/fastapi_app.py 中挂载涵盖事件event、审查review、媒体media、录像record、导出export、相机camera、统计stats等模块。第三方扩展最常用到的端点包括GET /api/events查询事件列表支持相机、标签、区域、时间、has_clip、has_snapshot、分数区间等大量过滤参数定义见 frigate/api/defs/query/events_query_parameters.py实现见 frigate/api/event.pyGET /api/events/{event_id}按 ID 获取单个事件frigate/api/event.pyGET /api/events/{event_id}/thumbnail.{extension}获取事件缩略图较新的include_thumbnails参数已被标记为 deprecated官方在 frigate/api/defs/query/events_query_parameters.py 中明确建议改用该缩略图端点GET /api/review、GET /api/review/summary查询审查片段及按时间线聚合的摘要参数定义见 frigate/api/defs/query/review_query_parameters.py实现见 frigate/api/review.py 与 frigate/api/review.pyGET /api/stats、GET /api/version、GET /api/config系统状态、版本号与配置信息frigate/api/app.py、frigate/api/app.py。完整的 OpenAPI 规范文件位于 docs/static/frigate-api.yaml第三方开发者可直接以此为准生成客户端仓库内更详尽的中文可读说明见 docs/docs/integrations/api.md。MQTT事件与状态的实时总线除 REST API 外Frigate 的 MQTT 总线是扩展接入的另一大入口。MQTT 客户端实现在 frigate/comms/mqtt.py其publish方法会自动为所有主题加上topic_prefix前缀def publish(self, topic: str, payload: Any, retain: bool False) - None: ... self._mqtt_client.publish( f{self.mqtt_config.topic_prefix}/{topic}, ... )topic_prefix的默认值是frigate见 frigate/config/mqtt.py并可在配置中修改。也就是说默认情况下所有主题都以frigate/开头。仓库内 docs/docs/integrations/mqtt.md 对主题体系做了完整说明第三方扩展最常订阅/监听的主题包括frigate/events每个被跟踪对象状态变化时发布一条消息type为new/update/end包含before与after两段完整事件快照字段覆盖label、sub_label、score、box、zones、has_clip、has_snapshot、速度与车牌识别结果等frigate/reviews审查片段相关消息frigate/stats周期性发布的系统统计frigate/available可用性主题online/stopped/offline常用于 Home Assistant 的 availability 配置frigate/camera_name/object_name/snapshot对象快照相关主题frigate/camera_name/ptz、frigate/camera_name/detect/set、frigate/camera_name/recordings/set等命令/状态主题可用于下发 PTZ 控制与开关检测等指令。正是REST API 取数据 MQTT 收事件 写回控制指令这一组合让第三方项目可以在不改动 Frigate 内核的前提下实现从通知推送到智能查询的丰富能力。数据模型事件、审查、子标签与快照理解扩展功能前还需掌握 Frigate 的几个核心数据概念事件Event一次被跟踪对象person、car 等的完整生命周期包含start_time、end_time、label、sub_label、score、zones、has_snapshot、has_clip等字段审查片段Review Segment按时间段聚合的审查条目/api/review即返回此类数据子标签sub_label事件的二级标注典型用途是写入识别出的具体是谁例如人脸识别结果John Smith。事件查询 API 支持按sub_label过滤实现中甚至针对逗号分隔的多个子标签做了LOWER与通配匹配处理见 frigate/api/event.py并提供了set_sub_label写接口见 frigate/api/event.py快照snapshot与片段clip事件触发时保存的静态图与录像片段has_snapshot/has_clip布尔字段即是其标记/api/events/{event_id}/thumbnail.{extension}等端点负责取回媒体内容。掌握了这套模型再回头看各个扩展就能清晰理解它们各自挂在 Frigate 的哪个接口上。家庭自动化面板Advanced Camera CardAdvanced Camera Card原名 Frigate Card是Home Assistant 的仪表盘卡片与 Frigate 深度集成。它利用 Frigate 的事件/审查 API 与 MQTT 数据在 Home Assistant 的 Lovelace 界面中直接展示摄像头画面、事件时间线、审查片段与对象检测结果让家庭自动化中枢与NVR在界面上融为一体。对已在使用 Home Assistant 的用户来说这是体验 Frigate 能力的最直接入口其与 Frigate 的交互方式同样是走 REST API拉取事件与媒体 MQTT实时状态具体可参考仓库内 docs/docs/integrations/home-assistant.md。自然语言交互cctvQLcctvQL 是一个面向 Frigate 及其他 CCTV 系统的自然语言查询层。它的工作方式如下连接 Frigate 的REST API与MQTT broker允许用户用会话式问句查询相机与事件例如昨晚前门有没有动静Was there motion at the front door last night?支持实时事件流借助 MQTT 的frigate/events等主题、异常检测、PTZ 控制、告警规则额外提供 Home Assistant 自定义组件。从架构上看cctvQL 正是REST API 负责查历史、MQTT 负责收实时这一集成范式的典型代表历史问题通过/api/events等查询接口回答实时告警与流式事件则依赖 MQTT 推送。人脸识别训练与自动打标Double TakeDouble Take 为人脸识别的图像处理与训练提供统一的 UI 和 API。它最实用的能力是识别出某个人后自动在 Frigate 中为对应 person 事件设置 sub_label。这正是前面提到的sub_label机制的实战场景Double Take 在后台完成人脸比对与身份确认后调用 Frigate 的set_sub_label接口见 frigate/api/event.py把事件标记为John Smith用户随后就能在 Frigate 的界面与/api/events?sub_labelsJohn%20Smith查询中按人名检索事件同时 MQTT 的frigate/events消息中也会带出sub_label字段供自动化系统消费。需要说明的是当前仓库收录的 Double Take 是原项目作者已停止维护的一个修复了错误并增加了新特性的 fork选用时请自行确认维护状态与适配版本。通知推送三件套Frigate Notify、Frigate Notify Alert、Frigate telegram通知是第三方扩展中数量最多的一类三个项目侧重点各不相同Frigate NotifyFrigate Notify 是一个面向独立 Frigate 安装的通知应用把 Frigate 事件推送到你偏好的平台。它的定位要点是适用于独立standaloneFrigate 安装不依赖 Home AssistantMQTT 可选但推荐——有 MQTT 时可订阅frigate/events等主题实现实时推送无 MQTT 时则通过 REST API 轮询。Frigate Notify AlertFrigate Notify Alert 专注于把 Frigate 事件以照片 视频媒体组的形式发送到 Telegram。其特性包括支持多个相机分组每个分组各自通知自己的聊天会话支持可选的区域zone过滤——只有对象进入指定区域时才通知支持在聊天内通过按钮暂停通知一段时间。它是典型的MQTT 订阅 媒体 API 拉取组合通过 MQTT 收到事件后再调用/api/events/{event_id}/thumbnail等端点拉取快照与视频片段组装媒体组。官方文档同样说明它适配独立 Frigate、无需 Home Assistant。Frigate telegramFrigate telegram 的目标更为直接把 Frigate 事件发送到 Telegram每条消息包含文本描述、视频和缩略图。它适合想要轻量、只发 Telegram的用户与 Frigate Notify Alert 相比功能更简洁。三个项目功能有重叠选型时主要考量推送平台范围Frigate Notify 多平台 vs 后两者仅 Telegram、是否需要区域过滤/暂停按钮等高级特性、以及你对MQTT 可选 / 必须的偏好。媒体同步与备份Frigate Snap-SyncFrigate Snap-Sync 是一个与 Frigate 协同工作的媒体同步程序当 Frigate 生成快照snapshot或审查片段review时官方说明未来可扩展更多事件类型它会响应并上传到一台或多台你指定的远程服务器适合需要异地备份关键证据、或在多站点间同步录像/截图的中高级用户。从 Frigate 侧看snapshot 与 review 分别对应事件模型的has_snapshot字段与/api/review返回的审查条目Snap-Sync 可通过这些接口发现新生成的媒体文件再执行传输。远程同步的安全传输加密、目标服务器鉴权需用户自行保障。展示终端kiosk-monitor 与 Periscopekiosk-monitor树莓派看板看门狗kiosk-monitor 是一个Raspberry Pi 看门狗程序用于把树莓派变成永续运行的 Frigate 看板终端以全屏 Chromium打开 Frigate 仪表盘可选在第二块显示器上用 VLC 播放一路 RTSP 摄像头流屏幕冻结或 URL 不可达时自动重启浏览器/应用附带一个Birdseye 感知的 Chromium 助手可根据显示器尺寸自动调整网格布局。这里的 Birdseye 对应 Frigate 内置的鸟瞰视图功能多相机网格聚合画面配置文档见 docs/docs/configuration/birdseye.mdkiosk-monitor 专门针对它做了布局适配。Periscope旧手机变身实时查看器Periscope 是一个轻量级 Android 应用把闲置的旧设备变成 Frigate 的实时查看器支持Android 2.2 及以上版本包括 Android TV支持认证与 HTTPS可安全访问远程部署的 Frigate。它适合手头有旧 Android 手机/电视盒子的用户低成本获得一块专用的监控屏。流媒体与生态桥接Scrypted Frigate BridgeScrypted - Frigate bridge 是 Scrypted智能家居视频平台的插件负责在两个系统间搭建桥梁将 Frigate 的检测结果、运动事件、视频片段接入 Scrypted统一纳入 Scrypted 的智能家居视频体系提供模板可导出/生成 Frigate 侧的rebroadcast转播配置方便在 Frigate 中配置流重播。对于已经把大量摄像头接入 Scrypted、又想叠加 Frigate 本地检测能力的用户这个插件是典型的生态互操作方案。摄像头配置自动发现StrixStrix 解决的是 Frigate 上手阶段最头疼的问题——我的摄像头流地址到底是什么。它的能力包括自动探测IP 相机的可用流 URL对相机测试成千上万种 URL 模式支持没有 RTSP 或 ONVIF 协议的相机直接生成开箱即用的 Frigate 配置相机流地址、探测参数等官方宣称覆盖6.7 万 相机型号、3600 品牌。对刚接触 Frigate、被厂商私有协议和畸形流地址困扰的新用户这类配置生成器可以大幅缩短部署时间。11 个扩展一览扩展类别核心集成点适用场景Advanced Camera Card仪表盘Home Assistant 卡片 REST/MQTTHA 用户直接在 Lovelace 中看监控cctvQL查询/自动化REST API MQTT自然语言问昨晚发生了什么、异常检测Double Take人脸识别REST APIsub_label 打标识别谁出现在镜头前并自动标注Frigate Notify通知REST/MQTTMQTT 可选独立 Frigate 的多平台通知Frigate Notify Alert通知MQTT Telegram 媒体组Telegram 照片视频组、区域过滤、暂停按钮Frigate telegram通知Telegram轻量文本视频缩略图推送Frigate Snap-Sync备份同步snapshot / review 事件快照与审查片段上传到远程服务器kiosk-monitor展示终端Frigate 仪表盘 Birdseye树莓派看板、异常自动恢复Periscope展示终端Frigate 实时流旧 Android 设备变监控屏含 Android TVScrypted Frigate Bridge生态桥接detections/motion/clip 接入 Scrypted与 Scrypted 视频体系互操作Strix配置工具摄像头流探测 配置生成快速获得可用的 Frigate 相机配置接入前的安全与选型提示官方文档在列出这些项目时特意给出了两条重要提醒这里必须原样强调本文档以及本文不对任何扩展进行推荐或评级。每个项目的代码质量、维护活跃度、权限模型各不相同安装到系统前请用自己的知识充分评估与审查审代码、看 issue、确认是否开源可审计。扩展清单不是穷尽的社区可以通过向 Frigate 文档提交 PR 持续扩充——这意味着生态仍在演进也意味着流行不代表安全。在安全层面结合前文的机制分析可以给出几条通用原则内部端口 5000 的免认证特性只应存在于可信网络内如 docker 内网。该信任模型依赖 nginx 设置的x-server-port头frigate/api/auth.py若把 5000 端口直接暴露到公网等于把 admin 权限拱手让人必须避免需要外部访问的扩展应通过外部端口 8971 走完整认证JWT/密码或自行架设带鉴权的反向代理使用 MQTT 时建议为 Frigate 配置独立的 broker 账号与topic_prefix并限制订阅/发布权限避免扩展程序获得过大的控制面如frigate/camera/ptz这类控制主题对自动同步、自动上传类扩展如 Snap-Sync确认传输加密与目标端权限隔离后再启用。小结Frigate 之所以能长出这样一片第三方生态根源在于其双重开放接口以 5000 端口内部 API 为代表、覆盖事件/审查/媒体/统计的完整 REST 面以及以frigate/为前缀、贯穿检测、事件、审查、状态的 MQTT 总线。11 个扩展分别落在通知、人脸识别、自然语言查询、展示终端、媒体备份与生态桥接等不同象限几乎覆盖了家庭 NVR 的全部周边需求。如果你准备动手接入建议的探索路径是先用 docs/static/frigate-api.yaml 了解 API 全貌再阅读 docs/docs/integrations/api.md 与 docs/docs/integrations/mqtt.md 掌握调用细节最后对照上表挑选符合你场景的扩展——并在安装前完成对它的独立安全审查。【免费下载链接】frigateNVR with realtime local object detection for IP cameras项目地址: https://gitcode.com/GitHub_Trending/fr/frigate创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价