Skip to content

入门指南 ​

提示

如果你已经有一个安装了 Linux 和 Docker 的环境,可以直接跳转到下面的安装 Frigate部分。

如果你已经通过 Docker 或 Home Assistant App 安装了 Frigate,可以直接跳转到下面的配置 Frigate部分。

硬件设置 ​

本节将指导你如何在服务器上安装 Debian Bookworm 并安装 Docker。

安装 Debian 12 (Bookworm) ​

关于如何安装 Debian 服务器有很多指南,所以这里只提供简略指南。将临时显示器和键盘连接到你的设备,以便安装一个没有桌面环境的最小化服务器。

准备安装媒介 ​

  1. 从Debian 网站下载小型安装镜像
  2. 将 ISO 写入 USB 设备(推荐使用balena Etcher工具)
  3. 从 USB 启动你的设备

安装并设置 Debian 以进行远程访问 ​

  1. 确保你的设备已连接到网络,以便可以安装更新和软件
  2. 如果没有连接鼠标,选择非图形化安装选项,但两种安装方式都可以正常工作
  3. 系统会提示你设置 root 用户密码并创建一个带密码的用户
  4. 安装最小化软件。更少的依赖意味着更少的维护工作。
    1. 取消选中"Debian 桌面环境"和"GNOME"
    2. 选中"SSH 服务器"
    3. 保持"标准系统实用工具"选中
  5. 重启后,以 root 身份登录命令提示符,将用户添加到 sudoers
    1. 安装 sudo
      bash
      apt update && apt install -y sudo
    2. 将你创建的用户添加到 sudo 组(将blake改为你自己的用户名)
      bash
      usermod -aG sudo blake
  6. 运行poweroff关机

此时,你可以将设备安装到永久位置。剩余步骤可以通过 SSH 从另一台设备完成。如果你没有 SSH 客户端,可以安装Visual Studio Code 文档中列出的选项之一。

通过 SSH 完成设置 ​

  1. 通过 SSH 连接并使用安装时创建的非 root 用户登录

  2. 设置无密码 sudo,这样就不用每次执行 sudo 命令时都输入密码(将下面命令中的blake改为你的用户名)

    bash
    echo 'blake    ALL=(ALL) NOPASSWD:ALL' | sudo tee /etc/sudoers.d/user
  3. 注销并重新登录以激活无密码 sudo

  4. 为操作系统设置自动安全更新(可选)

    1. 运行以下命令确保所有内容都是最新的
      bash
      sudo apt update && sudo apt upgrade -y
    2. 安装无人值守更新
      bash
      sudo apt install -y unattended-upgrades
      echo unattended-upgrades unattended-upgrades/enable_auto_updates boolean true | sudo debconf-set-selections
      sudo dpkg-reconfigure -f noninteractive unattended-upgrades

现在你有了一个需要很少维护的最小化 Debian 服务器。

安装 Docker ​

  1. 使用官方文档安装 Docker Engine(不是 Docker Desktop)
    1. 具体来说,按照使用 apt 仓库安装部分的步骤操作
  2. 按照Linux 安装后步骤中的说明将你的用户添加到 docker 组

安装 Frigate ​

本节展示如何在 Debian 上为 Docker 安装创建最小目录结构。如果你已经通过 Home Assistant App 或其他方式安装了 Frigate,可以继续配置 Frigate部分。

设置目录 ​

如果配置文件在初始启动时不存在,Frigate 将创建一个配置文件。以下目录结构是开始所需的最低要求。一旦 Frigate 运行起来,你可以使用内置的配置编辑器,它支持配置验证。

.
├── docker-compose.yml
├── config/
└── storage/

这将创建上述结构:

bash
mkdir storage config && touch docker-compose.yml

如果你通过 SSH 在 Linux 设备上设置 Frigate,可以使用nano来编辑以下文件。如果你更喜欢使用完整的编辑器而不是终端来编辑远程文件,我推荐使用带Remote SSH 扩展的Visual Studio Code。

NOTE

这个docker-compose.yml文件只是 amd64 设备的基本配置文件。你需要根据你的实际硬件情况然后参考安装文档中的详细说明来配置合适的硬件加速,也可以使用 Docker Compose 生成工具来生成你对应硬件的配置。

docker-compose.yml

yaml
# 这只是一个示例,建议使用上面的提示的生成工具来生成对应的 Compose 配置
services:
  frigate:
    container_name: frigate
    restart: unless-stopped
    stop_grace_period: 30s
    image: docker.cnb.cool/frigate-cn/frigate:stable
    volumes:
      - ./config:/config
      - ./storage:/media/frigate
      - type: tmpfs # 使用 1GB 内存作为录制片段存储的临时存储
        target: /tmp/cache
        tmpfs:
          size: 1000000000
    ports:
      - '8971:8971'
      - '8554:8554' # RTSP 视频流

现在你应该可以在包含docker-compose.yml的文件夹中运行docker compose up -d来启动 Frigate。在启动时,系统会创建一个管理员用户和密码,并在日志中输出。你可以通过运行docker logs frigate来查看。

日志的格式类似于以下内容:

bash
********************************************************
********************************************************
***    Auth is enabled, but no users exist.          ***
***    Created a default user:                       ***
***    User: admin                                   ***
***    Password: 这里是密码                           ***
********************************************************
********************************************************

现在应该可以通过https://server_ip:8971访问 Frigate,你可以使用admin用户登录并使用内置的配置编辑器完成配置。

配置 Frigate ​

本节假设你已经按照安装中的说明设置了环境。你还应该根据摄像头设置指南配置你的摄像头。特别注意选择检测分辨率的部分。

步骤 1:启动 Frigate ​

此时你应该能够启动 Frigate,基本配置将自动创建。

步骤 2:添加摄像头 ​

点击 设置 > 全局配置 > 摄像头管理 中的 Add Camera 按钮,使用摄像头设置向导将你的第一个摄像头添加到 Frigate 中。有关每个步骤的详细说明,请参见使用添加摄像头向导添加摄像头。

现在你已经有了一个工作正常的摄像头配置,你需要设置硬件加速以减少解码视频流所需的 CPU。查看硬件加速配置参考,了解适用于你的硬件的示例。

如果你在使用 Docker Compose 配置生成器的时候勾选了 GPU 加速,则不需要参考下方配置添加核显的映射。

添加核显的映射

在全局配置的 FFmpeg 部分,把 硬件加速参数 设置为适用于你硬件的预设(例如 Intel 核显为 preset-vaapi)。

步骤 1 / 3打开设置
设置

FFmpeg

FFmpeg 编解码相关设置,包含可执行文件路径、命令行参数、硬件加速选项,以及按不同功能划分的输出参数。

阅读文档
硬件加速参数

用于 FFmpeg 的硬件加速参数。建议使用对应硬件厂商的预设配置。

Apple 兼容性

录制 H.265 视频时启用 HEVC 标记,以提升对 Apple 设备播放的兼容性。

高级设置 (4)

提示

如果你是 7 代以上的 Intel 处理器,更推荐使用qsv进行硬件加速。更多详细信息请见qsv 配置文档。

步骤 4:配置检测器 ​

默认情况下,Frigate 将使用单个 CPU 检测器。

一般来说,核显即可满足绝大部分用户的需求。Intel 核显用户可以参考以下配置。

在全局配置的 检测器和模型 部分添加 OpenVino 检测器,再在 检测模型 部分配置对应的模型参数。

步骤 1 / 3打开设置
设置

检测器和模型

配置检测器后端及其使用的模型。

检测器硬件配置运行目标检测的检测器后端。
OpenVINOov适用于 AMD 和 Intel CPU、Intel GPU 和 Intel VPU 硬件的 OpenVINO 检测器。
IDov
类型OpenVINO
设备类型用于 OpenVINO 推理的设备(例如 'CPU'、'GPU'、'NPU')。
GPU
添加自定义键
添加检测器
类型 添加
检测模型配置模型及其输入形状。
Frigate+自定义模型
自定义目标检测模型路径

自定义检测模型文件的路径(或 Frigate+ 模型的 plus://<model_id>)。

自定义目标检测器的标签映射

将数字类别映射到检测器字符串标签的标签映射文件路径。

目标检测模型输入宽度

模型输入张量的宽度(像素)。

目标检测模型输入高度

模型输入张量的高度(像素)。

高级设置 (4)
模型输入像素颜色格式

模型期望的像素色彩空间:'rgb'、'bgr' 或 'yuv'。

模型输入张量形状

模型期望的张量格式:'nhwc' 或 'nchw'。

模型输入数据类型

模型输入张量的数据类型(例如 'float32')。

目标检测模型类型

某些检测器用于优化的检测器模型架构类型(ssd、yolox、yolonas、yolo-generic、rfdetr和dfine)。

如果你有 USB Coral,你需要在配置中添加检测器部分。

添加 USB Coral

更多关于可用检测器的详细信息可以在这里找到。

重启 Frigate,你应该就能开始看到人(person)的检测结果。如果你想追踪其他目标/物体,可以阅读检测的目标/物体配置添加其他追踪的目标/物体。

步骤 5:设置画面变动遮罩 ​

现在你已经优化了解码视频流的配置,你需要检查在哪里实现画面变动遮罩。你可以直接在设置页面的遮罩/ 区域选项卡中来设置遮罩。更多关于遮罩的信息可以在这里找到。

在摄像头配置的遮罩/ 区域选项卡中,为 画面变动遮罩 添加遮罩区域。

步骤 1 / 6打开设置
设置
前门

警告

注意,画面变动遮罩不应用于标记你不想检测物品/目标的区域或减少误报。它们不会改变发送到物体/目标检测的画面,所以你仍然可以在有画面变动遮罩的区域检测到追踪目标、触发警报和检测。这些只是防止这些区域的画面变动触发物体/目标检测。

步骤 6:启用录制 ​

为了在 Frigate 页面中查看事件和回放,需要启用录制。

要启用视频录制,向流添加record功能并在配置中启用它。如果在配置中禁用了录制,就无法在页面中启用它。

在摄像头配置的视频流(FFmpeg)部分,为用于录制的流添加 record 角色,再在录制部分开启录制。

步骤 1 / 9打开设置
设置

视频流(FFmpeg)

摄像头视频流和 FFmpeg 编解码相关设置,包含可执行文件路径、命令行参数、硬件加速,以及按不同功能划分的输出参数。

阅读文档
摄像头输入视频流

该摄像头的所有输入流配置列表(包含路径和功能)。

摄像头特定的 FFmpeg 参数
输入参数

应用于 FFmpeg 输入视频流的输入参数。

硬件加速参数

用于 FFmpeg 的硬件加速参数。建议使用对应硬件厂商的预设配置。

检测输出参数

检测功能视频流的默认输出参数。

录制输出参数

录制功能视频流的默认输出参数。

Apple 兼容性

录制 H.265 视频时启用 HEVC 标记,以提升对 Apple 设备播放的兼容性。

高级设置 (3)

如果你的检测和录制没有单独的流,你只需要在第一个输入的功能列表中添加 record 功能:

yaml
cameras:
  name_of_your_camera:
    ffmpeg:
      inputs:
        - path: rtsp://10.0.10.10:554/rtsp
          roles:
            - detect
            - record # 给视频流增加录制功能

NOTE

如果你在 inputs 中只定义了一个流且没有为其分配detect功能,Frigate 会自动为其分配detect功能。即使你在配置的detect部分使用enabled: False禁用了物体/目标检测,Frigate 仍然会解码一个流以支持画面变动检测、Birdseye、API 图像端点和其他功能。

如果你只计划使用 Frigate 进行录制,仍建议为低分辨率流定义一个detect功能,以最小化所需流解码的资源使用。

默认情况下,Frigate 会保留所有追踪目标的视频 10 天。完整的录制选项可以在这里找到。

步骤 7:完整配置 ​

此时你已经有了一个具有基本功能的完整配置。

后续步骤 ​

现在你已经有了一个可工作的安装,你可以使用以下文档了解其他功能:

  1. 区域 - 按区域控制警报等级
  2. 视频回放
  3. 遮罩 - 避免特定场景的误报
  4. Home Assistant 集成 - 与 Home Assistant 集成
  5. 人脸识别 - 识别出家庭成员
  6. 车牌识别 - 识别出自家车辆