前言:

frigate,是一个不错的监控平台NVR,今天我写一个通过docker compose安装的教程,unraid商店有成品的模板所以我就不去费劲写模板了,可以直接用,配置文件都是通用的可以借鉴。

在开始之前,需要确认你的摄像头是网络的,支持RSTP,在确认主流和子流配置,本教程使用的海康摄像头,所以教程内容也以海康的配置内容为主。

教程:

在创建容器之前,我们需要创建config.yml因为默认容器并不会生成新的默认配置文件。

使用命令创建config.yml touch ./config.yaml注意操作前的路径,方便后期映射配置文件。

mqtt:
  host: mqtt
  port: 1883
    
birdseye:
  enabled: False
  mode: motion
  width: 1920
  height: 1080
  
objects:
  track:
    - person
#    - car
#    - motorcyle
#    - cat
    - dog   

###视频解码硬件加速
ffmpeg:
  hwaccel_args: preset-nvidia-h264
  input_args: preset-rtsp-restream-low-latency
  output_args:
    record: preset-record-generic-audio-aac

###摄像头链接参数  
cameras:
  cam:
    enabled: True
    ffmpeg:
      inputs:
        - path: rtsp://user:password@ip:554/Streaming/Channels/2
          roles:
            - detect
            - rtmp 
        - path: rtsp://user:password@ip:554/Streaming/Channels/1
          roles:
            - record
    detect:
      width: 1280 
      height: 720 
   

record:
  enabled: True
  retain:
     days: 20
     mode: motion

snapshots:
  enabled: True

下面是针对配置的部分解释,这里我只写了几个我们需要修改的,其他参数并没有做出解释。

这里需要注意。子流的分辨率和FPS 不建议给太高,过高的分辨率和FPS 会导致CPU 负载增高推理速度下降,在mqtt的配置上如果是compose或者其他系统的docker,可以写容器名字,如果是unraid系统请改为IP,以免出现通讯问题,如果是使用compose插件则写容器名字即可。

下面我们来写compose,这里注意,开头的compose的版本和其他信息我并没有标注,所以其他内容请自行填充,这里只写frigate相关。

###frigate
  frigate:
    image: ghcr.io/blakeblackshear/frigate:stable-tensorrt
    container_name: "frigate"
    restart: always
    shm_size: "5G"
    privileged: true
    volumes:
      - "/data/appdata/frigate:/config"
      - "/DVR:/media/frigate"
      - "/tmp/frigate:/tmp/cache"
      - "/etc/localtime:/etc/localtime:ro"
      - type: tmpfs
        target: /tmp/cache
        tmpfs:
          size: 2G
    environment:
      - "FRIGATE_RTSP_PASSWORD="
      - "TZ=Asia/Shanghai"
      - "PUID=0"
      - "PGID=0"
      - "UMASK=000"
    ports:
      - "5000:5000"
    labels:
      - "traefik.http.routers.frigate.rule=Host(`frigate.xxx.com`)"
      - "traefik.enable=true"
      - "traefik.http.services.frigate.loadbalancer.server.port=5000"

配置完成后,使用docker compose up -d 或者docker-compose up -d 生成容器并启动,启动后ip:5000端口访问frigate的web界面就可以看到frigate信息了。

到此,最基本的frigate启动教程就结束了。

结尾:

frigate是一个非常好用的NVR平台,但是因为他的功能,对CPU消耗相比shinobi这种平台消耗会高一些,后续我还会根据frigate的官方文档出硬件加速,和GPU对yolov模型的加速。

如果无法确定摄像头rstp是否正常,可以安装VLC播放器,手动检测RSTP是否正常。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。