Frigate ist natürlich im Bereich der zentralen Kameraüberwachung absolut ein guter Name. Doch es gibt einiges was man an Frigate einstellen, konfigurieren und optimieren kann. Besonders das Optimieren ist hier wichtig, denn schnell kann es passieren das die CPU-Last ins unendliche steigt. Zum Glück haben wir GPU & TPU, welche uns hier deutlich entlasten und die Leistungsaufnahme verringern.
Frigate mit GPU & TPU
Die Software muss Bildmaterial verarbeiten und das auch noch in Echtzeit. Solche Prozesse benötigen Rechenkapazität und bestenfalls sogar noch Rechenkapazität welche dafür ausgelegt und optimiert ist. Alles spricht also für eine GPU um das Videosignal direkt durch Hardware dekodieren zu können. Frigate bietet dort einige Optionen an und ich habe mich für die Variante mit der Intel CPU gewählt. Meine Intel CPU unterstützt VAAPI (Video Accelerator API). Damit kann direkt durch den Hardware-Chip in der CPU das Videosignal verarbeitet werden, ohne das dabei die CPU belastet wird.
Wer jetzt sogar noch eine vollständige Objekterkennung haben möchte, der muss ein vorab trainiertes Neuronales Netz verwenden. Auch hier ist die CPU eigentlich der falsche Ort zur Berechnung, dafür gibt es TPU Chips. Mit dem Google Coral über USB gibt es hier eine super einfache Methode dies in diesen Chip auszulagern.
Frigate installieren und einrichten
Frigate selber ist super einfach mit Hilfe von Docker zu betreiben, also eine „Installation“ entfällt hier. Die Dokumentation von Frigate ist hervorragend beschrieben. Diese findet Ihr hier.
Jetzt kommen aber 1-2 wichtige Informationen. Zu diesem Zeitpunkt sollte dir klar sein ob du auch wie oben beschrieben eine GPU & TPU einsetzen möchtest. Denn es müssen entsprechende Flags gesetzt werden wenn ihr diese benutzen möchtet.
Die eigentliche Einrichtung passiert dann aber über die Konfigurations-Datei. Dort wird definiert wie welche Kamera angebunden wird. Mit was für einem Hardware Accelerator der Videostream dekodiert werden soll und ob du über einen VAAPI und einen TPU Stick verfügst.
Wer genauer in meine Konfig rein schaut, dem wird auffallen das ich das „Detecten“ von Objekten mit dem Substream von der Reolink Kamera mache. Objekte können auch in Videomaterial erkannt werden, welches nicht 4K ist, sondern meistens reicht dafür ein 720p Stream. Also benutzen wird den Stream mit der weniger guten Qualität für das aufspüren von Objekten, aber zeichnen für die Aufnahme den mit der hohen 4K Auflösung auf. Also das Bildmaterial was du dir später ansiehst, ist wieder mit super Qualität.
config.yaml – Frigate
mqtt:
enabled: True
host: 192.168.10.20
port: 1883
topic_prefix: frigate
client_id: frigate
cameras:
E1-Pro:
ffmpeg:
hwaccel_args: preset-vaapi
inputs:
- path: rtsp://video:Test1234!@192.168.75.172:554/h264Preview_01_main
roles:
- record
- rtmp
- path: rtsp://video:Test1234!@192.168.75.172:554/h264Preview_01_sub
roles:
- detect
detect:
height: 360
width: 640
fps: 5
objects:
track:
- person
- cat
- dog
- car
- bus
- train
- cup
RLC-410:
ffmpeg:
hwaccel_args: preset-vaapi
inputs:
- path: rtsp://admin:Test1234@192.168.20.34:554/h264Preview_01_main
roles:
- record
- rtmp
- path: rtsp://admin:Test1234@192.168.20.34:554/h264Preview_01_sub
roles:
- detect
detect:
height: 360
width: 640
fps: 5
objects:
track:
- person
- cat
- dog
- car
- bus
- train
- cup
detectors:
coral:
type: edgetpu
device: usb
birdseye:
enabled: True
mode: continuous
width: 1920
height: 1080
record:
enabled: True
expire_interval: 30
sync_recordings: True
retain:
days: 1
mode: all
events:
pre_capture: 10
post_capture: 10
snapshots:
enabled: True
clean_copy: True
timestamp: True
telemetry:
network_interfaces:
- eth
- enp
- eno
- ens
- wl
- lo
stats:
amd_gpu_stats: True
intel_gpu_stats: True
network_bandwidth: False
18. November 2024 um 20:10 Uhr
Vielen Dank für die Erklärung mit dem fregate skript. Ich habe eine Proxmox auf einen Lenovo ThinkCentre M720q mit einem Intel Core i5-8400t, 6×1.7GHz geht hier das VAAPI ?
Da ich relativ neu bin. komm ich nicht so weiter und habe vermutlich zuviele Fragen. Vermutlich geht das Frigate Interface: IP:5000 erst nach Erstellung der config.yaml. Welches Passwort ist für den login. Wie editiere ich die config.yamll ? Wie lege ich die Aufnamen auf einen NAS ab. Ist schon mit smb auf Proxmox verbunden.
Vielen Dank.
mfg
Thorsten Weiter