22. FRIGATE
22.1 Matériel
-1 mini PC ou plutôt micro compte tenu de sa taille raccordé au routeur par un cable ethernet
Processeur d’image (GPU):Carte graphique Intel ® Supercore (jusqu’à 750MHz)
Mémoire en cours d’exécution (RAM):LPDDR5 4800 MT/s, montage à bord,
Disque dur de stockage:Compatible M.2 2242 SATA, SATA/PCIE
Construit dans l’expansion de stockage:M.2 2242 peut évoluer à 2 To;
Sortie graphique:Double sortie HDMI + DP V1.4, prenant en charge une résolution maximale de 4096x2160
Réseau sans fil:Realtek 8852BE 802.11a/b/g/n/ac/ax
Interface de puissance:Interface TYPE-C, 12V/3A, 36W (charge uniquement) Prise en charge de l’alimentation PD
USB-A:USB3.2 (Gen1 * 1) * 3
Sortie vidéo:HDMI * 2 4096x2160 @ 60Hz , DP V1.4 * 1 4096x2160 @ 60Hz
Interface audio:Å3.5mm, CTIA
Port Ethernet:GLA Lan (RJ45) * 2 1000m/100m/10m
Indicateur de lumière:Indicateur de puissance bleu clair
Taille du corps:87*87*39.5MM
Poids corporel:397 grammes
Système d’exploitation:Windows 11 Pro Édition Professionnelle (non utilisé)
22.1.1 Installation du module Pcie Coral
Comme il n’y a qu’un seul emplacement Pcie occupé par une carte wifi-BT et comme le PC est raccordé par un cable ethernet:
on remplace le module wifi (qui se trouve sous la carte M2) par le module Coral
Le couvercle est clipsé, pour l’ouvrir il suffit de déclipser en soulevant avec un tournevis
22.2 Installation docker
Ajouter la clé GPG officielle de Docker:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
Ajoutez le dépôt aux sources Apt :
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Installez les packages Docker:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
1. Vérifiez que l’installation a réussi en exécutant l’image :hello-world
sudo docker run hello-world
créer le groupe docker et ajouter-vous comme utilisateur :
sudo groupadd docker
sudo usermod -aG docker $USER
Configurer Docker pour qu’il démarre au démarrage avec systemd:
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
installer Docker-compose:
sudo apt install docker.io docker-compose -y
22.3 Installation de Frigate
https://github.com/blakeblackshear/frigate
créer 2 sous-répertoires pour la configuration et la vidéo dans un répertoire « frigate » :
cd /opt
mkdir frigate && cd frigate
mkdir config
mkdir media
22.3.1 Créer le fichier de configuration docker-compose.yml
sudo nano docker-compose.yml
version: "3.9"
services:
frigate:
privileged: true # this may not be necessary for all setups
restart: unless-stopped
image: ghcr.io/blakeblackshear/frigate:stable
# devices:
# - /dev/bus/usb:/dev/bus/usb # Passe l’USB Coral, doit être
# modifié pour d’autres versions
# - /dev/apex_0:/dev/apex_0 # Passe un PCIe Coral, suivez les
# instructions du pilote ici
# https://coral.ai/docs/m2/get-started/#2a-on-linux
ports:
- "5000:5000"
- "1935:1935"
- "554:8554" # Flux RTSP
volumes:
- /opt/frigate/config:/config
- /opt/frigate/media:/media
- type: tmpfs # En option:1 Go de memoire,réduit l
# usure de la carte SSD/SD
target: /tmp/cache
tmpfs:
size: 100000000
environment:
- FRIGATE_RTSP_PASSWORD=<PASS>
- FRIGATE_RTSP_USER=<USER>
22.3.2 Configurer une caméra, config.yml
sudo nano config/config.yml
mqtt:
enabled: false
cameras:
jardin_cote_rue:
ffmpeg:
inputs:
- path: rtsp://michel:<MOT_PASSE>@192.168.1.107:554/cam/realmonitor?channel=1&subtype=0
roles:
- record
- path: rtsp://michel:<MOT_PASSE>@192.168.1.107:554/cam/realmonitor?channel=1&subtype=0
roles:
- detect
detect:
enabled: true
version: 0.14
camera_groups:
cam:
order: 1
icon: LuAirplay
cameras:
- Jardin_cote_rue
22.3.3 Démarrer Frigate
sudo docker-compose up -d
Affichage dans le navigateur
22.4 Installer le pilote du module Coral
sudo uname -r
Important
Si la version de votre noyau est 4.19 ou supérieure, vérifier si un pilote Apex pré-construit est installé
sudo lsmod | grep apex
S’il n’affiche rien, tout va bien , continuez à installer le pilote PCIe. Si il affiche un nom de module Apex, suivre la solution pour désactiver Apex et Gasket: https://coral.ai/docs/m2/get-started/#workaround-to-disable-apex-and-gasket
22.4.1 Installez le pilote PCIe et les packages d’exécution Edge TPU
Tout d’abord, ajouter le dépôt de paquets Debian au système:
echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list
sudo curl https://packages.cloud.google.com/apt/doc/apt-key.gpg -o /etc/apt/trusted.gpg.d/coral.asc
sudo apt-get update
Installez ensuite le pilote PCIe et les packages d’exécution Edge TPU
sudo apt-get install gasket-dkms libedgetpu1-std
Note
le compte utilisateur doit disposer des autorisations root
Une fois *redémarré*, vérifier que le module d’accélération est détecté:
lspci -nn | grep 089a
Vérifiez également que le pilote PCIe est chargé :
ls /dev/apex_0
22.5 nouvelles configurations de docker-compose et config
22.5.1 docker-compose.yml
22.5.1 config/config.yml
Ajouter ces lignes:
# N'activez cette option que si vous utilisez les GPU Intel
ffmpeg:
hwaccel_args: preset-vaapi
detectors:
coral:
type: edgetpu
device: pci
22.5 prise en main de go2rtc
Important
Pour utiliser go2rtc dans Frigate, il n’est pas nécessaire de l’installer mais pour comprendre le fonctionnement, c’est préférable.
Par contre pour l’utiliser dans Frigate il est important de stopper le conterneur go2rtc pour éviter des problèmes d’ouverture de ports.
En mappant dans docker-compose.yml de Frigate le port 1984, on peux accéder à go2rtc. Avec un certificat letsencrypt, l’accès distant est aussi possible.
Voir aussi
ports RTSP et ONVIF pour caméras de marque : https://www.camapp365.com/technical/rtsp-and-onvif-ports
création du répertoire /op/go2rtc
mkdir /opt/go2rtc
cd /opt/go2rtc
**création de docker-compose.yml
services:
go2rtc:
image: alexxit/go2rtc:master-hardware
network_mode: host # important for WebRTC, HomeKit, UDP cameras
privileged: true # only for FFmpeg hardware transcoding
restart: unless-stopped # autorestart on fail or config change from WebUI
environment:
- TZ=Europe/Paris # timezone in logs
volumes:
- "~/go2rtc:/config" # folder for go2rtc.yaml file (edit from WebUI)
Démarrer le conteneur
sudo docker-compose up -d
config.yml:
22.6 le fichier config/config.yml avec go2rtc
22.7 Accès distant
Autoriser le port 5000
le fichier de configuration Nginx
#auth_basic "Mot de Passe Obligatoire";
#auth_basic_user_file /etc/nginx/.htpasswd;
server_name <DOMAINE>;
location / {
proxy_pass http://192.168.1.2:5000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#WebSocket support
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/<DOMAINE>/fullchain.pem; #>
ssl_certificate_key /etc/letsencrypt/live/<DOMAINE>/privkey.pem;>
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = <DOMAINE>) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 ;
server_name <DOMAINE>;
return 404; # managed by Certbot
voir cette exemple pour la configuration en http pour demander un certificat Let’sEncrypt 9.4 accès distant HTTPS
22.8 Configuration onvif (caméras PTZ)
fichier /config/config.yml
ptz_nord:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/ptz_nord
input_args: preset-rtsp-restream
roles:
- detect
onvif:
host: 192.168.1.20
port: 8899
user: admin
password: '' # si pas de password
detect:
enabled: true
** fichier docker-compose.yml**
Note
ports ONVIF les plus utilisés: 80, 8000, 8080, 8899, 2000, 5000
22.9 Notifications (sans HomeAssistant)
https://github.com/0x2142/frigate-notify/tree/main
mon fichier config.yml
frigate:
server: http://192.168.1.2:5000
ignoressl: true
public_url: https://frigate.xxxxxxxxxxxxxx.ovh
headers:
- Authorization: Basic bWxxxxxxxxxxxxNTQ2
startup_check:
attempts: 5
interval: 30
mqtt:
enabled: true # Une seule méthode de surveillance peut être configurée
server: 192.168.1.42
port: 1883
clientid: frigate-notify
username: michel
password: xxxxxxxxx
topic_prefix: frigate
webapi:
enabled: false # Une seule méthode de surveillance peut être configurée
interval: 60
cameras:
exclude:
- PTZ_nord
alerts:
general:
title: Alerte Frigate
timeformat:
# Spécifier ce qu’il faut faire avec les événements qui n’ont pas d’image d’instantané
nosnap: # Par défaut : allow
snap_bbox:
# Inclut l’horodatage sur l’instantané lorsqu’il est récupéré à partir de Frigate
snap_timestamp:
snap_crop:
# Définissez cette option pour ne notifier qu’une seule fois par événementtrue
notify_once: true
quiet:
start:
end:
zones:
unzoned: allow
allow:
- jardin_cote_rue_z1
block:
- test_zone_02
discord:
enabled: false
webhook:
template:
gotify:
enabled: false
server:
token:
ignoressl:
template:
pushover:
enabled: true
token: aszzzzzzzzzzzzzzzzzzzzzzka
userkey: uoxxxxxxxxxxxxxxxxxxxji
devices: honvvvvvvvvvvvvvv
priority: 0
retry:
expire:
ttl:
template:
smtp:
enabled: false
server: smtp.orange.fr
port: 465
tls: true
user: michel.xxxxxxxr@orange.fr
password: zzzzzzzzzzzzzzzzzzzzzzzz
recipient: michel.zzzzzzzzzzzz@mailo.com
template:
webhook:
enabled: true
server: http://192.168.1.5/monitor/api/json.php?app=envoi_sms&contenu=essai
ignoressl:
method:
params:
headers:
template:
monitor:
enabled: false
url:
interval:
ignoressl:
monfichier docker-compose.yaml
fichier journal
docker logs --tail 50 --follow --timestamps frigate-notify_frigate-notify_1
22.10 Frigate plus
la documentation n’est pas très claire, il faut ajpouter la clé api dans la configuration docker
22.11 Mise à jour de Frigate
Pour faire cette mise à jour, 2 lignes de commandes à taper :
docker compose pull
sudo docker compose up -d
22.12 Caméras chinoises Vatilon
Caméras H42, H43, PA4, PB4, …..
Des problèmes existent avec go2rst, pour les résoudre l’update du firmware est souvent la solution; pour cela, télécharger IPCBatchTools sur Github :
22.13 Caméras IMOU CRUISER dual
https://github.com/blakeblackshear/frigate/discussions/11848
ma config frigate:
go2rtc:
streams:
cruiser_pt:
- rtsp://admin:xxxxxxxx@192.168.1.7/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
cruiser_pt_sub:
- ffmpeg:cruiser_pt#video=h264#width=1280#height=720#raw=-fpsmax 5#hardware=vaapi
cameras:
imou_cruiser_ptz:
onvif:
host: 192.168.1.7
port: 80
user: admin
password: xxxxxxxx
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/cruiser_pt
input_args: preset-rtsp-restream
roles:
- record
- path: rtsp://127.0.0.1:8554/cruiser_pt_sub
input_args: preset-rtsp-restream
roles:
- detect
imou_cruiser_fixed:
ffmpeg:
inputs:
- path:
rtsp://admin:xxxxxxxx@192.168.1.7/cam/realmonitor?channel=2&subtype=0
roles:
- detect
- record































