网站首页 > 技术文章 正文
大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!
什么是 Frigate
Frigate 是专为家庭助理设计的完整本地 NVR(Network Video Recorder),具有 AI 对象检测功能, 使用 OpenCV 和 Tensorflow 在本地为 IP 摄像机执行实时目标检测。
Google Coral 加速器可选,但官方强烈建议使用, CPU 检测只能用于测试目的。 Coral 的性能甚至优于最好的 CPU,并且可以以很少的开销处理 100+ FPS。
Frigate 是一个 Docker 容器,可以在任何 Docker 上运行,包括作为 HassOS 插件运行。请注意,家庭助理插件与集成不同。将 Frigate 集成到 Home Assistant 中需要进行集成。
Frigate 具有以下突出特点:
- 通过自定义组件与 Home Assistant 紧密集成
- 旨在通过仅在必要时间和地点查找对象来最大限度减少资源使用并最大限度地提高性能
- 大量利用多重处理(Multiprocessing),强调实时性而不是处理每一帧
- 使用非常低开销的运动检测(Motion Detection)来确定在何处运行对象检测
- 使用 TensorFlow 进行对象检测在单独的进程中运行,以实现最大 FPS
- 通过 MQTT 进行通信,以便轻松集成到其他系统中。MQTT 代理对于 Frigate 来说是可选的,但对于 Home Assistant 集成是必需的。如果使用 Home Assistant,Frigate 和 Home Assistant 必须连接到同一个 MQTT 代理。
- 根据检测到的物体进行保留记录
- 通过 RTSP 重新串流以减少与摄像机的连接数量,RTSP(而不是 RTMP)中继支持与其他消费者一起使用,以减少相机流的连接数量
- 支持实时查看 WebRTC 和 MSE 来实现低延迟,WebRTC 或 MSE 用于实时观看,比 jsmpeg 流具有更高的分辨率和帧速率,jsmpeg 流仅限于检测流。
输出 H.264 视频和 AAC 音频的摄像机将提供与 Frigate 和 Home Assistant 的所有功能的最大兼容性。 如果相机支持多个子流以允许使用不同的分辨率进行检测、流式传输和录制而无需重新编码,这也会很有帮助。推荐大华、海康威视、Amcrest。
目前 Frigate 在 Github 上通过 MIT 协议开源,有超过 12.4k 的 star、1.4k 的 fork、代码贡献者 200+,是一个值得关注的前端开源项目。
如何使用 Frigate
第 1 步:添加检测流
首先将为相机添加检测流:
mqtt:
enabled: False
cameras:
name_of_your_camera: # <------ Name the camera
ffmpeg:
inputs:
- path: rtsp://10.0.10.10:554/rtsp # <----- The stream you want to use for detection
roles:
- detect
detect:
enabled: False # <---- disable detection until you have a working camera feed
width: 1280 # <---- update for your camera's resolution
height: 720 # <---- update for your camera's resolution
第二步:启动 Frigate
此时可以启动 Frigate 并在 UI 中看到视频源。
如果从摄像头收到错误图像,则意味着 ffmpeg 无法从摄像头获取视频源, 检查日志中包含来自 ffmpeg 的错误消息。 默认 ffmpeg 参数旨在与支持 TCP 连接的 H264 RTSP 摄像机配合使用。
其他类型相机的 FFmpeg 参数可以在
https://docs.frigate.video/configuration/camera_specific / 找到。
步骤 3:配置硬件加速(推荐)
现在已经有了可用的摄像头配置,需要设置硬件加速以最大限度地减少解码视频流所需的 CPU 资源。
以下是使用预设为具有集成 GPU 的 Intel 处理器配置硬件加速的示例配置:
mqtt: ...
cameras:
name_of_your_camera:
ffmpeg:
inputs: ...
hwaccel_args: preset-vaapi
detect: ...
第 4 步:配置检测器
默认情况下,Frigate 将使用单 CPU 探测器。 如果有 USB Coral,则需要在配置中添加检测器部分。
mqtt: ...
detectors: # <---- add detectors
coral:
type: edgetpu
device: usb
cameras:
name_of_your_camera:
ffmpeg: ...
detect:
enabled: True # <---- turn on detection
...
第 5 步:启用录制和 / 或快照
为了在 Frigate UI 中查看事件,需要启用快照或记录。
要启用录制视频,可以将录制角色添加到流并在配置中启用。 如果配置中禁用了记录,则通过 UI 将其打开不会产生任何效果。
mqtt: ...
detectors: ...
cameras:
name_of_your_camera:
ffmpeg:
inputs:
- path: rtsp://10.0.10.10:554/rtsp
roles:
- detect
- path: rtsp://10.0.10.10:554/high_res_stream # <----- Add stream you want to record from
roles:
- record
detect: ...
record: # <----- Enable recording
enabled: True
motion: ...
如果没有单独的流用于检测和记录,只需将记录角色添加到第一个输入的列表中。默认情况下,Frigate 会将所有事件的视频保留 10 天。 可以在
https://docs.frigate.video/configuration/#
full-configuration-reference 找到完整的录制选项集。
为了启用事件快照,只需在配置中启用即可。 快照是从检测流中获取的,因为它是唯一已解码的流。
mqtt: ...
detectors: ...
cameras:
name_of_your_camera: ...
detect: ...
record: ...
snapshots: # <----- Enable snapshots
enabled: True
motion: ...
默认情况下,Frigate 将保留所有事件的快照 10 天。
参考资料
https://github.com/blakeblackshear/frigate
https://frigate.video/
https://docs.frigate.video/frigate/hardware
https://docs.frigate.video/frigate/installation
https://docs.frigate.video/guides/configuring_go2rtc
猜你喜欢
- 2025-05-10 愁!面试总卡壳?3 道 Vue 高频题助你从容应对
- 2025-05-10 Vue3 开发总踩坑?这 10 个技巧让你少走半年弯路!
- 2025-05-10 开源自监控神器 Uptime Kuma,让你的服务运行无忧!
- 2024-09-18 前端代码异常监控实战
- 2024-09-18 「webfunny干货分享」搭建前端监控系统(七):用户细查篇
- 2024-09-18 前端监控稳定性数据分析实践 | 得物技术
- 2024-09-18 Corona技术专题-网易云音乐大前端性能监控服务的设计与实现
- 2024-09-18 实战 | 如何用 Python 自动化监控文件夹完成服务部署
- 2024-09-18 使用vue+node搭建前端异常监控系统
- 2024-09-18 监控立杆上的前端摄像头安装防雷器有用吗
你 发表评论:
欢迎- 05-10如何优化数据库和前端之间的交互?
- 05-10前端代码优化小秘籍(前端优化24条建议)
- 05-10VS Code当中的15个神仙插件,值得收藏
- 05-10如何自己开发一个Google浏览器插件?
- 05-10前端流行框架Vue3教程:14. 组件传递Props效验
- 05-10吃了一年的SU,最好用的插件都在这了
- 05-10前端必看!这款神器让网站界面告别千篇一律
- 05-10程序员请收好:10个非常有用的 Visual Studio Code 插件
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端懒加载 (45)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle查询数据库 (45)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)