System Blog
教程
教程
  • 开源的 Windows 12 网页体验版
  • Hexo
  • SquareX
  • 用电视看 Youtube 油管视频的设置方法
  • 启用Chrome的多线程下载
  • 国外接码平台SMS Activate详细使用教程
  • Live-torrent:磁力链和种子在线搜索播放下载
  • Windows 11
    • Windows11 24H2官方ISO系统镜像下载|跳过TPM硬件检测|本地账号登陆
    • U盘启动盘 l 一键绕过 TPM 限制安装 Win11 l 24H2最新版
  • CloudFlare
    • [网盘][Pages] Cloudflare R2 + Workers搭建在线网盘
    • [博客][Workers]CloudFlare搭建永久免费动态博客,无需服务器,可绑定自己的域名!
    • [博客][Pages] ⚡基于 Cloudflare Pages + Workers + D1 + R2 的动态博客
    • [书签][Workers] Card-Tab 书签卡片式管理
    • [图床][Pages] 利用CloudFlare和Telegraph实现免费托管图片
    • [短链][Pages] Sink Cloudflare系列之短链接生成器
    • [短链][Worker] 利用Cloudflare及KV搭建可自定义路径的短链程序
    • [短链][Workers] 无服务器 自建短链服务 Url-Shorten-Worker 完整的部署
    • [短链][Workers] Cloudflare Workers + Vercel 搭建短链接系统
    • [短链][Pages] Cloudflare Pages 创建的 URL 缩短器
    • [短链][Worker]URL Shortener无需服务器轻松部署,可绑定自定义域名
  • Mail
    • Gmail
    • Outlook
    • Proton
    • Zoho
  • Office
    • 免费 | 安装 | 正版Office全家桶 | 微软官方 LTSC 2024 长期服务版
    • 免费 | 微软官方途径安装Office 2024,包括Word, Excel, PPT。下载途径和激活码均来自官网
  • 将 Telegram Channel 转为微博客/说说/树洞/备忘录/分享
  • NAS OS
    • 飞牛NAS VMware 安装及设置
    • 飞牛NAS通过Cloudflare-Tunnels低成本实现内网穿透
    • 飞牛NAS通过Cpolar 内网穿透,轻松实现无公网远程访问
    • 飞牛NAS安装V2rayA,解决网络问题!
    • 飞牛NAS使用Docker安装OpenWrt/iStoreOS系统详细教程 !
    • Page 1
    • Docker搭建虚拟浏览器(Chrome)(Edge)(Firefox)
  • Docker 项目
    • [推荐]Docker搭建一个网页版办公软件-WPS-Office
    • [推荐]Docker搭建一个适用于个人的在线网盘(列目录)程序-ZFile
    • [推荐]Docker搭建一个轻量的视频分享网站-FireShare
    • [推荐]Docker部署跨平台文件传输工具-PairDrop
    • [推荐]Docker部署TTS文本转语音工具-EasyVoice
    • [推荐]Docker部署免费在线观影平台-LibreTV
    • Docker安装Windows
    • Docker搭建一个火狐浏览器(Firefox)
    • Docker搭建二次验证应用OTP开源程序-2FAuth
    • Docker搭建一个开源的密码管理服务平台-Bitwarden
    • Docker搭建一个免费使用ChatGPT的Lobe-Chat应用
    • Docker搭建一个好用的导航站点-Sun-Panel
    • Docker搭建一个好看,简约的标签页-Mtab
    • Docker搭建一个高颜值的网页版SSH/Telnet客户端-Sshwifty
    • Docker搭建TVADB助手-给电视轻松安装第三方应用
    • Docker搭建一个为开发者提供方便的网页版IT工具箱-IT-Tools
    • Docker搭建一个Web音乐播放站点,支持音乐下载-Musicn
    • Docker部署一款无限听歌,解放小爱音箱-XiaoMusic
    • Docker搭建一款轻松生成AI证件照-HivisionIDPhotos
    • Docker搭建一个免费的网页版PS图片处理工具-Photopea
    • Docker部署一款支持多种直播平台的直播录制工具-BiliLive-Go
    • Docker搭建专注于文件分享的高颜值轻量小工具-PingvinShare
    • Docker搭建一个文件快递柜-Filecodebox
    • Docker搭建一款极简、易于托管的文件分享服务–PicoShare
    • Docker搭建一个好用的网盘-Cloudreve
    • Docker搭建文件浏览器-File Browser
    • Docker部署一款自托管下载工具-MeTuBe
    • Docker搭建一个B站、油管、知乎视频下载服务-AllTube
    • Docker部署一款类似微信朋友圈项目-Moments
    • Docker部署一款轻量、私有部署的多平台云备忘录-Memos
    • Docker部署文件共享工具-FileDrop
    • Docker一个稳定的IPTV服务,随便看-Allinone
    • Docker搭建可道云网盘-Kodbox
    • Docker部署CloudDrive2挂载网盘到本地(飞牛影视和EMBY都能扫)
    • Docker搭建一款网页端办公系统-GodoOS
    • Docker部署AI智能监控安防系统-Frigate
  • Docker搭建Cloudreve私人网盘 支持离线下载 支持域名访问
  • 协作式书签管理器,用于收集、组织和归档网页–Linkwarden
  • 无哈利波特,开启Google
  • Cloudflare-Workers+域名-打造Docker-Hub自用私有镜像仓库
  • Docker 项目仓库
Powered by GitBook
On this page
  • docker部署命令
  • docker-compose部署
  • 后台管理界面
  • 确定摄像头是否能添加
  • 配置文件修改
  • 录像文件位置

Was this helpful?

  1. Docker 项目

Docker部署AI智能监控安防系统-Frigate

lakeblackshear/frigate 是一个开源项目,主要用于视频监控和物体检测,它结合了机器学习和计算机视觉技术,提供了实时的对象检测和人脸识别功能,适用于家庭安全、监控和自动化等场景。

主要功能如下:

1、可以无缝接入支持ONVIF/RTSP协议的摄像头,实时查看或回放录像,亲可将实时录像保存到NAS本地,实现NAS当NVR的目的;

2、普通摄像头接入后,可以借助frigate的AI功能实现物体检测、分析监控画面并实时提醒,还能划定安全区域等等,让不支持AI的摄像头也能实现智能识别;

3、开源免费,摄像头数量不限,不像品牌NAS的监控套件有数量限制或付费要求,完美平替;

4、可以接入HomeAssistant系统实现智能联动,这个是真的强啊,玩HA智能方案的朋友有福了!

docker部署命令

docker run -d \
  --name frigate \  # 容器名称,可自定义
  --restart=unless-stopped \
  --mount type=tmpfs,target=/tmp/cache,tmpfs-size=1000000000 \ # 开启缓存,避免硬盘频繁读写
  --device /dev/dri/renderD128 \ # 核显直通进行解码
  --shm-size=64m \
  -v /path/to/your/storage:/media/frigate \  # 容器名称,/path/to/your/storage修改为主机真实路径,即存放录像的文件夹
  -v /path/to/your/config:/config \  # 容器生成的配置文件,/path/to/your/config修改为主机真实路径
  -v /etc/localtime:/etc/localtime:ro \
  -e FRIGATE_RTSP_PASSWORD='password' \
  -p 8971:8971 \  # 这4个-p开头的端口请修改为当前主机未被占用的端口即可,访问时使用https加IP加8971对应映射的端口访问
  -p 8554:8554 \
  -p 8555:8555/tcp \
  -p 8555:8555/udp \
  ghcr.io/blakeblackshear/frigate:stable

docker-compose部署

version: "3.9"
services:
  frigate:
    container_name: frigate
    privileged: true # 超级权限,默认即可
    restart: unless-stopped
    image: ghcr.io/blakeblackshear/frigate:stable
    shm_size: "64mb"
    devices:
      - /dev/dri/renderD128:/dev/dri/renderD128 # 直通核显的,默认即可
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./config:/config # frigate生成的配置文件存放位置
      - ./storage:/media/frigate # frigate生成的录像保存位置,可以自定义
      - type: tmpfs
        target: /tmp/cache
        tmpfs:
          size: 1000000000
    ports:  # 请修改以下每行的第一个端口为未被占用的端口即可,确认都没占用,可不用修改
      - "8971:8971"
      - "5555:5000" # frigate的后台UI界面端口,请把5555修改为你当前未占用的端口即可
      - "8554:8554" # RTSP feeds流的端口
      - "8555:8555/tcp" # WebRTC over tcp端口
      - "8555:8555/udp" # WebRTC over udp端口
    environment:
      FRIGATE_RTSP_PASSWORD: "password"
     #以下部分为限制容器对于CPU和内存的最高占用率,不需要可删除,建议开启,避免占用过多资源
    deploy:
      resources:
        limits:
          cpus: '0.50'  # 如N100处理器4核4线程,0.5代表最高占用2核心,0.25代表1核
          memory: 1024M

后台管理界面

现在打开浏览器,通过访问你NAS的内网IP地址加5555端口(如果你没修改的话)号即可进入frigate后台了,如下图所示,因为我们还没添加摄像头,所以会提示No frames have been received,遗憾的是frigate目前还没汉化版本,所以是全英文的,不过添加摄像头也不难,下面就来演示一下如何添加。

确定摄像头是否能添加

能否把你的摄像头添加到frigate中实现查看、识别和录像,首先要确定摄像头是否支持,在确定前首先你的摄像头可能需要支持以下两种协议,即ONVIF和RTSP。

ONVIF(Open Network Video Interface Forum)和 RTSP(Real-Time Streaming Protocol)都是用于网络视频传输的协议,但它们的功能和用途不同。

ONVIF:

定义:ONVIF 是一个标准化的协议,专为网络视频设备(如摄像头)设计,旨在实现不同设备之间的互操作性。

功能:支持设备发现、配置、控制(如摄像头的转动、变焦等),并传输视频流。

用途:主要用于网络摄像头的管理和控制,确保不同品牌的设备可以兼容使用。

RTSP:

定义:RTSP 是一个应用层协议,用于控制音视频流的传输,主要用于多媒体播放和实时传输。

功能:仅提供视频流的播放、暂停、停止等控制功能,不涉及设备管理或配置。

用途:主要用于实时视频的流传输,例如在网络摄像头上通过 RTSP URL 来获取视频流。

一般情况下,如果摄像头支持 ONVIF,它通常也会支持 RTSP,因为 ONVIF 协议包含了对 RTSP 流的支持作为传输视频流的一种方式,所以只要能确定你手上的摄像头支持ONVFI,那么就可以接入frigate中。

一般来说,如海康、TP-LINK、水星的主流摄像头都是支持ONVIF的,我目前家里的几个摄像头基本是TP和水星的,完美支持ONVIF协议,如果不确定你的摄像头是否支持ONVIF或RTSP,请联系官方客服查询或去其官网查询。

就以我手上的TP-LINK/水星为例,进入摄像头的后台,在网络设置-端口这里就可以查看RTSP端口为554,说明它支持接入frigate,记下。

此外还需要确定RTSP流的地址,直接搜索引擎去查,加上品牌名,比如说TP RTSP地址,这不就查找到了。

所以,我这个水星(TP的低端品牌)摄像机的RTSP地址就是:rtsp://摄像头用户名:摄像头密码@摄像头IP:摄像头RTSP端口/stream1

其中stream1是主码流,高清,优先使用这个,当然,其它品牌摄像头可能不同,具体请自行确定,随机应变。

确定摄像头RTSP地址后,咱们可以修改一下frigate的配置文件进行摄像头添加了。

配置文件修改

frigate的配置文件如下图所示,在其config文件夹下找到config.yaml打开编辑即可。

默认是这样的内容,我们需要修改一下。

为了演示方便,直接贴出通用的配置文件吧~如下所示,已经对各项参数做了详细标示,它们作用是什么都有写,请随机修改。

或者直接修改cameras:部分的IP和user、password为你当前摄像头的配置即可,摄像头IP和摄像头账密就不用问怎么来了吧,除非这个摄像头不是你的,修改完后,完整复制。

mqtt:
  enabled: false


ffmpeg:
  hwaccel_args: preset-vaapi


# 录制配置示范
record:
  enabled: true
  retain: # 所有录像保留时长,我设置3天
    days: 3
    mode: all
  events:
    pre_capture: 1 # 录像前提前时间
    post_capture: 3 # 录像后延长时间 3 秒
    retain: # 检测的录像保留天数
      default: 10


# 检测快照保留时长,单位为天数
snapshots:
  enabled: true
  retain:
    default: 30


# 默认检测物体:人
objects:
  track:
    - person
#  - car
# 摄像头配置,onvif部分不是必须,使用rtsp也可
cameras:
  tp-link_camera_outside01: # 自定义摄像头名称
# 摄像头IP地址和ONVIF端口号,不同品牌的不同,请查找后随机修改,有ONVIF可使用PTZ,如摄像头不支持,此部分可不要
    onvif:
      host: 192.168.10.4
      port: 2020
# 摄像头账号和密码,请随机修改
      user: admin #摄像头账号
      password: password #摄像头密码


# 以下rtsp://部分的admin和password请替换为摄像头账号、密码


    ffmpeg:
      inputs:
        - path: rtsp://admin:[email protected]:554/stream1
          roles:
            - detect
            - record #人形检测,不要可注释掉
    detect:
      width: 1280
      height: 720
      fps: 5
version: 0.14

将其粘贴到config.yaml中完整替换原有配置文件,点击保存。

接着重启一下Frigate。

现在,在浏览器中刷新一下frigate后台,发现有画面出现了,第一个摄像头就添加完成了,继续添加的话就复制cameras:下的tp-link_camera_outside01: # 自定义摄像头名称这一段添加就行,摄像头名称记得别一样,就可以继续添加多个摄像头了,目前好像是没有限制的。

点击进去可以进行全屏查看,可以发现右上角的人形检测和录像、快照都打开了。

不过人形检测有点消耗CPU资源,因为实时检测这些会需要算力,如果NAS处理器性能不好,会占满,所以这也是为什么compose部署有做了资源限制,如果人形检测不是刚需,建议关闭,或者在前面配置文件中把roles中的detect关键字注释掉就不会自动开启人形检测了。

点击左上角的History可以回看视频,可以拉动右侧时间轴进行回话,挺方便的。

录像文件位置

录像保存的位置就是你前面映射的storage那个目录,如果你没更改,那么它保存在如下图所示的位置,做了摄像头名称、日期区分,并且是以MP4格式保存的。

打开播放,一切正常,它基本是以几分钟为一小段进行保存,而且前面配置文件中已经设置了最长保存录像天数,超过这个天数的会自动删除,所以不用担心会占满NAS空间,当然你也可以自定义保存时长,只要你硬盘容量足够大,保存多久都是可以的。

frigate比较强的点在于可以无缝集成到HA中,如果你刚好使用NAS部署了HomeAssistant,那么可以玩出更多花样来。

更多进阶文档配置可以查看官方介绍,可自定义的设置实在是太多了,但是如果你和我一样只是接入摄像头进行检测、录像之类的话,使用我前面提供的配置就足够了,喜欢折腾的可以深入研究一下。

PreviousDocker搭建一款网页端办公系统-GodoOSNextDocker搭建Cloudreve私人网盘 支持离线下载 支持域名访问

Last updated 5 months ago

Was this helpful?