Frigate:开源 AI 摄像头监控,在 Alpine Linux 上用 Docker 部署全流程
前言
想在家里装监控,但不想买海康威视的 NVR 录像机 —— 又贵又封闭。开源的 Frigate 方案是:随便一个摄像头(RTSP 协议) + 一台跑 Docker 的小主机 + AI 对象检测。
Frigate 的核心卖点是 AI—— 它用 TensorFlow Lite 模型实时分析视频流,识别画面里的人、车、猫、狗、包裹。不是那种「画面有动静就报警」的笨方案,而是「有个人走进了后院」的精确检测。
硬件要求
Frigate 本身吃资源不多,但 AI 检测需要算力:
| 加速方式 | 延迟 | 说明 |
|---|---|---|
| Google Coral TPU | <10ms | 最佳方案,USB 或 m.2 接口 |
| Intel iGPU (OpenVINO) | 10-30ms | 大部分 Intel CPU 自带 |
| CPU (无加速) | 50-200ms | 够用但慢,适合低分辨率 |
如果只是 1-2 个摄像头、检测人不检测车,CPU 模式够用。摄像头多了或者需要低延迟,加个 Coral TPU。
Alpine Linux 上的 Docker 安装
Alpine 默认没开 community 仓库,需要手动启用:
# 编辑 /etc/apk/repositories,取消 community 那行的注释vi /etc/apk/repositories
apk updateapk add docker docker-composerc-update add docker bootservice docker startAlpine 的包管理器是 apk,跟 apt 语法不同但有对应关系。如果你用 Debian / Ubuntu,这一步就是 apt install docker.io。
Docker Compose 部署
services: frigate: container_name: frigate image: ghcr.io/blakeblackshear/frigate:stable restart: unless-stopped privileged: true shm_size: "256mb" volumes: - /etc/localtime:/etc/localtime:ro - ./config:/config - ./storage:/media/frigate - type: tmpfs target: /tmp/cache tmpfs: size: 10000000007 collapsed lines
ports: - "5000:5000" - "8554:8554" # RTSP 输出 devices: - /dev/dri:/dev/dri # Intel 核显加速 environment: FRIGATE_RTSP_PASSWORD: your-passwordshm_size: 256mb 是给 /dev/shm 的大小 ——Frigate 用共享内存做视频帧缓冲,太小了会丢帧。
摄像头配置
核心配置文件 config/config.yml:
mqtt: enabled: false
cameras: front_door: ffmpeg: inputs: - path: rtsp://admin:password@192.168.1.100:554/stream1 roles: - detect # AI 检测流(低分辨率) - record # 录像流(全分辨率) detect: width: 640 height: 480 fps: 54 collapsed lines
record: enabled: true retain: days: 7两个关键概念:
- detect 流:给 AI 分析的,分辨率不用太高,640x480、5fps 就够
- record 流:录像存档的,用摄像头原始分辨率
对象检测配置
objects: track: - person - car - cat filters: front_door: person: min_score: 0.7 # 置信度阈值 threshold: 0.8min_score 设太低会有很多误报(把树影识别成人),设太高会漏检。0.7 是个比较平衡的起点,根据实际情况微调。
踩坑记录
Alpine apk add docker 失败
症状:apk add docker 报 “no such package”。
原因:Alpine 的 docker 包在 community 仓库,默认没开。编辑 /etc/apk/repositories,找到 community 那行取消注释,然后 apk update。
设备映射搞错
症状:Frigate 日志里找不到 /dev/dri,硬件加速不工作。
确认你的加速设备:Intel 核显是 /dev/dri,Coral TPU 是 /dev/apex_0(USB)或 /dev/coral(PCIe)。别搞混。
# 检查 Intel 核显ls /dev/dri
# 检查 Coral TPUlsusb | grep -i googleVA - API 驱动缺失
Intel 核显硬件加速需要 VA - API 驱动。Alpine 安装:
apk add intel-media-driverDebian/Ubuntu:
apt install intel-media-va-driver总结
Frigate 把监控这件事从「被动录像」变成了「主动识别」。画面里有没有人、有没有车、猫是不是又跳上了沙发 ——AI 实时告诉你。
在 Alpine 上部署比 Debian 多了一步开 community 仓库,但也就多这一步。之后 Docker Compose 拉起,接上摄像头,配好双码流,就能用了。
如果你家里有闲置的小主机和摄像头,花一个下午搭个 Frigate,比买成品 NVR 划算多了 —— 而且开源、可控、能折腾。