Bonjour,
Dans un premier temps, très belle année à tous !
Je me permets de créer ce sujet car je ne sais comment faire pour optimiser mon installation frigate. Actuellement il tourne sur un ordinateur portable dédié sous debian et sous un docker dédié uniquement à frigate (l’ordinateur ne sert qu’a faire tourner frigate).
Cependant, plus je mets de caméra (activée / avec enregistrement) plus le CPU est à 100% et par conséquence :
- Je ne peux consulter le flux en direct de façon fluide
- Les enregistrements sauvegardés sur un NAS externe sont non fluides et saccadés par conséquent je ne peux reconstituer une vidéo entièrement.
Exemple : l’enregistrement est activé sur la caméra X, sa filme, puis 3 secondes après sa se met à jour du coup j’ai loupé les 2 secondes d’avant (non enregistrées) etc.
J’ai actuellement 5 flux RTSP sur mon frigate.
Voici ma configuration frigate :
mqtt:
enabled: true
host: X
user: X
password: X
ffmpeg:
hwaccel_args: preset-vaapi
go2rtc:
streams:
camera_salon_principal:
- rtsp://X:X@X554/stream1
camera_salon_secondaire:
- rtsp://X:X@X:554/stream2
webrtc:
listen: 8555
candidate:
- 127.0.0.1:8555
- X:8555
record:
enabled: true
retain:
days: 7
mode: motion
cameras:
tapo-ext-double-cam-fixe:
enabled: true
ffmpeg:
inputs:
- path:
rtsp://X:X@X:554/stream1
roles:
- record
detect:
enabled: false
objects:
track:
- person
snapshots:
enabled: true
record:
enabled: true
tapo-ext-double-cam-mobile:
enabled: true
ffmpeg:
inputs:
- path:
rtsp://X:X@X:554/stream6
roles:
- record
detect:
enabled: false
objects:
track:
- person
onvif:
host: X
port: 2020
user: X
password: X
snapshots:
enabled: true
record:
enabled: true
tapo-cam-salon:
enabled: true
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/camera_salon_principal
roles:
- record
- path: rtsp://127.0.0.1:8554/camera_salon_secondaire
roles:
- detect
live:
streams:
main_stream: camera_salon_principal
sub_stream : camera_salon_secondaire
onvif:
host: X
port: 2020
user: X
password: X
detect:
enabled: false
objects:
track:
- person
snapshots:
enabled: true
record:
enabled: true
tapo-cam-sdj:
enabled: true
ffmpeg:
inputs:
- path: rtsp://X:X@X:554/stream1
roles:
- record
- path: rtsp://X:X@X:554/stream2
roles:
- detect
#live:
# streams:
# main_stream: camera_sdj_principal
# sub_stream : camera_sdj_secondaire
onvif:
host: X
port: 2020
user: X
password: X
detect:
enabled: false
objects:
track:
- person
snapshots:
enabled: true
record:
enabled: true
tapo-cam-garage:
enabled: true
ffmpeg:
inputs:
- path: rtsp://X:X@X:554/stream1
roles:
- record
onvif:
host: X
port: 2020
user: X
password: X
detect:
enabled: false
objects:
track:
- person
snapshots:
enabled: true
record:
enabled: true
version: 0.16-0
Le GPU lui est très peu utilisé 4% environ, en analysant les logs frigate : RAS juste un message indiquant que FFMPEG consomme un peu trop sur les caméras et un message CPU.
CPU detectors are not recommended and should only be used for testing or for trial purposes.
Voici mon fichier docker compose :
services:
frigate:
container_name: frigate
privileged: true
restart: unless-stopped
image: ghcr.io/blakeblackshear/frigate:stable
shm_size: '2g'
devices:
- /dev/dri:/dev/dri
volumes:
- ./config:/config
- /mnt/nas/frigate:/media/frigate
- type: tmpfs
target: /tmp/cache
tmpfs:
size: 4096m
ports:
- "8555:8555"
- "8971:8971"
En analysant directement sur le serveur on voit bien que c’est ffmpeg qui consomme quand même pas mal pour chaque camera !
Finalement, j’ai basculé l’ensemble des flux de mes cameras en 720P pour limiter la consommation.
Savez-vous ce que je pourrais faire pour ameliorer la consommation du CPU s’il vous plait ?
En vous remerciant par avance,
Clément.
