Kameras bestellst du in einer Minute. Schwieriger ist ein Server, der dauerhaft zuschaut, ohne zum Heizlüfter zu werden. Dieser Guide sortiert, was du zuerst entscheidest.
Kurz gesagt
Frigate ist ein freier NVR (Network Video Recorder), der als Docker-Container läuft und Kamerabilder auf deiner eigenen Hardware nach Personen, Autos und Tieren absucht. Vier Entscheidungen prägen den Aufbau: der Detektor, der die Objekterkennung rechnet, die Videodekodierung, die den größten Teil der CPU-Last verursacht, Kameras mit brauchbarem Substream in niedriger Auflösung und der Speicherplatz für die Aufnahmen. Unsere Einschätzung für einen Neuaufbau: ein kleiner x86-Rechner mit Intel-Prozessor ab der 6. Generation und integrierter Grafik, die OpenVINO nutzt, dazu kabelgebundene PoE-Kameras mit Substream und eine lokale Platte, die du mit der Formel unten berechnest. Die Frigate-Dokumentation empfiehlt für Neuinstallationen keinen Google Coral mehr [1].
So funktioniert’s
- Vier Aufgaben für die Hardware. Frigate dekodiert den Kamerastream zu Einzelbildern, sucht auf der CPU nach Bewegung, schickt die bewegten Bildbereiche an einen Detektor und schreibt den Original-Kamerastream ohne erneutes Kodieren auf die Platte [6][9]. Ein Detektor ist ein Chip oder ein Programm, das das Erkennungsmodell schnell rechnet. Beim Dekodieren hilft er nicht. Die Dokumentation nennt die Videodekodierung eine der CPU-intensivsten Aufgaben. Die Last wächst mit Auflösung und Bildrate: Ein 4K-Stream mit 30 fps braucht grob das Vierfache der Rechenleistung von 1080p bei gleicher Bildrate, und die doppelte Bildrate verdoppelt den Aufwand [9].
- Nach gleichzeitiger Aktivität planen, nicht nach Kameraanzahl. Die Planungsseite sortiert Aufbauten danach, wie viele Kameras gleichzeitig Bewegung sehen. Ein bis sechs Kameras mit gelegentlicher Bewegung kommen mit einem einzelnen Einsteiger-Beschleuniger aus. Bei sechs bis zwölf Kameras mit überlappender Bewegung braucht es mehr. Ab zwölf Kameras oder bei sehr belebten Szenen sind mehrere Beschleuniger oder eine dedizierte Grafikkarte nötig [2]. Unsere Lesart: Eine ruhige Einfahrt und ein Flur sind wenig Arbeit, eine Straßenansicht mit Verkehr ist es nicht.
- Den Detektor wählen. Die Hardware-Seite listet viele Optionen und nennt Inferenzzeiten. Sie stammen von verschiedenen Modellen und sind zwischen den Zeilen nicht vergleichbar [1]. Die Tabelle „Detektor-Optionen im Überblick“ unter der Liste zeigt die Optionen, denen Homelab-Bauer am häufigsten begegnen. Die Doku gibt eine Faustregel für die Kapazität: Ein Detektor mit 10 ms Inferenzzeit schafft höchstens 1000 / 10 = 100 Erkennungen pro Sekunde [1]. Für die N100-Zeile sind das 1000 / 15, also etwa 66 pro Sekunde (unsere Rechnung). Die Doku erwähnt außerdem, dass ein einzelner Coral für die meisten Nutzer viele Kameras bewältigt [1].
- Dekodierung und CPU. Frigate braucht eine CPU mit AVX und AVX2. Celeron- und Pentium-Modelle vor der Tiger-Lake-Generation von 2020 haben typischerweise kein AVX [2]. Nutze die integrierte Grafik zum Dekodieren. Für Intel empfiehlt die Doku
preset-vaapifür die Generationen 6 bis 12 undpreset-intel-qsv-*ab Generation 13. Es gibt keinen CPU-Fallback: Ist die Einstellung falsch, zeigen die Logs Fehler [5]. Arbeitsspeicher: 4 GB sind das Minimum für einen einfachen Aufbau, 8 GB brauchst du für Zusatzfunktionen wie Gesichts- oder Kennzeichenerkennung, 16 GB gelten ab acht Kameras als empfohlen [2]. - Der Rechner selbst. Die Doku empfiehlt Docker auf Debian-basiertem Linux direkt auf der Hardware. Eine VM unter Proxmox oder ESXi ist „nicht empfohlen“, auch wenn manche Nutzer es unter Proxmox geschafft haben. Windows wird offiziell nicht unterstützt [7]. Der Doku-Autor bevorzugt einen Mini-PC mit zwei Netzwerkanschlüssen, damit die Kameras in einem eigenen Netz ohne Internetzugang hängen können [1]. Die Wahl des Rechners behandelt unser Guide zum Mini-PC fürs Homelab. Ein Sicherheitshinweis: Die Releases 0.18.1 und 0.18.2 nennen Sicherheitskorrekturen, darunter Meldungen zu Remote-Code-Ausführung [11]. Halte Frigate aktuell und stelle es nicht ins offene Internet. Port 8971 ist die Oberfläche mit Anmeldung, Port 5000 ist ohne Anmeldung, und die Doku bittet, den Zugriff darauf zu begrenzen [7].
- Kameras. H.264-Video mit AAC-Ton ist die kompatibelste Wahl. Mit mehreren Substreams nutzt du einen niedrig aufgelösten Stream für die Erkennung und den hochaufgelösten für die Aufnahme [1]. Der Detect-Stream ist der einzige, den Frigate dekodiert. Sein Standardwert von 5 fps passt für fast jede Kamera, 10 fps gelten als empfohlenes Maximum [3]. Wähle die Detect-Auflösung so, dass die Objekte, auf die es dir ankommt, in den 320x320-Bereich des Modells passen. Höhere Auflösungen bringen keine bessere Genauigkeit, außer die Objekte sind im Bild sehr klein [3]. Der Doku-Autor schlägt 15 fps für den Aufnahmestream und gleiche Seitenverhältnisse bei beiden Streams vor [3]. WLAN-Kameras sind nicht empfohlen, weil ihre Streams weniger zuverlässig sind. Bei Reolink rät die Doku zu 5 MP oder weniger [1]. Ein go2rtc-Restream lässt Frigate und Live-Ansicht eine gemeinsame Verbindung zur Kamera nutzen [4]. H.265 spart Platz, aber die Browserunterstützung ist enger, und die Seiten nennen unterschiedliche Browserversionen. Teste es zuerst auf deinen eigenen Geräten [3][6].
- Markenlisten sind Meinungen. Die Hardware-Seite nennt in dieser Reihenfolge Dahua, Hikvision und Amcrest und sagt, dass größere Sensoren nachts mehr bringen als höhere Auflösung. Die Seite enthält Affiliate-Links und erklärt, dass der Autor eine Provision erhält [1]. Lies die Liste als Erfahrung eines Nutzers und prüfe die Kriterien oben im Datenblatt jeder Kamera, die du in Betracht ziehst.
- ONVIF in einfachen Worten. ONVIF ist ein Industriestandard, über den IP-Kameras und Rekorder markenübergreifend miteinander sprechen. Profil S deckt einfaches Videostreaming ab, Profil T ergänzt H.264 und H.265, Bildeinstellungen, Bewegungs- und Sabotage-Ereignisse, Metadaten und Zwei-Wege-Audio [12][13]. Die Konformität gilt für ein bestimmtes Produkt und eine Firmwareversion, und die ONVIF-Seite führt die konformen Produkte [14]. In Frigate hat ONVIF zwei Aufgaben. Der Assistent „Kamera hinzufügen“ kann die Kamera nach ihren Stream-Adressen fragen (der ONVIF-Port ist meist 80 oder 8080), und ONVIF überträgt PTZ-Befehle (Schwenken, Neigen, Zoomen). Das Video selbst kommt weiter per RTSP [4]. Manche Kameras brauchen ein eigenes ONVIF-Konto, und manche lehnen die Anmeldung ab, wenn ihre Uhr abweicht. Lass deshalb NTP auf Kamera und Server laufen. Für die automatische Verfolgung muss die Kamera relative PTZ-Bewegungen können, und manche Kameras versprechen das, ohne es zu liefern [4].
- PoE und das Kameranetz. Ein Kabel für Strom und Bild ist der Hauptgrund für kabelgebundene PoE-Kameras. Lies PoE-Klasse und Leistungsaufnahme im Datenblatt, addiere die Werte, plane Reserve ein und vergleiche die Summe mit dem Budget des Switches. Unser Guide zum PoE-Switch zeigt die Rechnung. Lege die Kameras in ein eigenes VLAN oder an einen zweiten Netzwerkanschluss, wie es die Doku anregt. Den Aufbau erklärt unser VLAN-Guide.
- Speicher: Die Bitrate entscheidet. Frigate schreibt Aufnahmen direkt aus dem Kamerastream, also ist die Bitrate des Streams mit der Rolle
recordauch die Bitrate auf der Platte [6]. Rechne um: GB pro Tag = Mbit/s x 86.400 / 8 / 1.000 (unsere Rechnung, Dezimal-GB). Die Bitraten unten sind Annahmen zur Veranschaulichung, keine Messwerte. Den echten Wert liest du in den Kameraeinstellungen ab oder an der geschätzten Bandbreite im Assistenten „Kamera hinzufügen“ [4]. Die Tabelle „Speicherbedarf im Überblick“ unter der Liste zeigt das Ergebnis. Dauerhafte Aufnahme ist standardmäßig aus. Frigate kann durchgehendes Material einige Tage aufbewahren, Bewegungsmaterial länger und Material um Alarme und Erkennungen am längsten. Die Doku zeigt drei Voreinstellungen: alles 3 Tage behalten, nur Bewegung behalten oder nur Alarme behalten [6]. Wie viel „nur Bewegung“ spart, hängt von deinen Szenen ab. Die Ersparnis ist unbekannt, bis du misst. - Platten und Netzwerkspeicher. Die Doku hält SSDs für den Heim-NVR für gut geeignet und sagt, die alte Verschleißsorge sei weitgehend überholt. Für lange Aufbewahrung nennt sie auf Überwachung ausgelegte Festplatten als günstige Wahl. Netzwerkspeicher funktioniert, aber lokale Platten sind empfohlen, und ein NAS braucht mindestens Gigabit-Ethernet und genug Schreibleistung [2]. Unser Zusatz: Prüfe in beiden Fällen nach einigen Monaten die SMART-Werte. Plane mehr ein als die Aufnahmen: Schnappschüsse, Vorschauen, Exporte (die die Aufbewahrung nie löscht), die Datenbank und Modelldateien brauchen Platz außerhalb der Aufnahmensumme, und eine ext4-Platte reserviert standardmäßig etwa 5 Prozent für root [6]. Nutze für
/tmp/cacheein tmpfs, wie das Compose-Beispiel der Doku [7]. - Home Assistant. Die Frigate-Integration für Home Assistant braucht einen MQTT-Broker, und Frigate und Home Assistant müssen denselben nutzen. Du installierst die Integration über HACS. Sie ist nicht dasselbe wie das Frigate-Add-on beziehungsweise die App [10][7]. Zum Rechner für Home Assistant lies unseren Guide zur Hardware für Home Assistant.
- Datenschutz: Frag die richtigen Stellen. Eine Kamera nimmt Menschen auf. Ob und wie das Datenschutzrecht für deinen Aufbau gilt, etwa bei Blick auf eine Straße, den Garten der Nachbarn oder ein gemeinsames Treppenhaus, ist eine Rechtsfrage, die wir nicht beantworten. Anlaufstellen sind die Leitlinien des Europäischen Datenschutzausschusses zu Videogeräten [15] und in Deutschland die Übersicht der Bundesbeauftragten für den Datenschutz samt Liste der Landesbehörden [16][17]. Für deinen Fall frag die Landesdatenschutzbehörde oder eine Anwältin beziehungsweise einen Anwalt.
Detektor-Optionen im Überblick
| Detektor | Läuft auf | Beispielzeit aus der Doku [1] | Hinweis |
|---|---|---|---|
| OpenVINO | Intel-iGPU (ab 6. Generation), Intel Arc, Intel-NPU | Intel N100: ~15 ms (MobileNetV2). Iris Xe: ~10 ms. Intel-NPU: ~6 ms | N100 und HD 530 können nur eine Detektor-Instanz fahren |
| Hailo-8 / Hailo-8L | M.2-Modul, Raspberry Pi 5 AI Kit | Hailo-8L ~11 ms, Hailo-8 ~7 ms (YOLOv6n) | Raspberry Pi OS Bookworm braucht einen Treibertausch [7] |
| Nvidia-GPU (ONNX) | Treiber 545 oder neuer, Compute Capability 5.0 oder höher | GTX 1070: 16 ms, RTX 3050: 10 ms (YOLOv9 s-320) | Höchster Stromverbrauch der Gruppe (unsere Einschätzung) |
| Google Coral | USB oder M.2 | In der Tabelle keine Zeit genannt | Für Neuinstallationen nicht mehr empfohlen, außer bei sehr geringem Strombudget |
Speicherbedarf im Überblick
Angenommene Bitraten, vier Kameras, sieben Tage durchgehend (unsere Rechnung, keine Messwerte):
| Angenommene Bitrate | Pro Kamera und Tag | 4 Kameras, 7 Tage durchgehend |
|---|---|---|
| 2 Mbit/s | 21,6 GB | 604,8 GB |
| 4 Mbit/s | 43,2 GB | 1.209,6 GB |
| 8 Mbit/s | 86,4 GB | 2.419,2 GB |
Ein Beispielaufbau, nicht unser System
Das ist eine Beispielrechnung. Über Kamera- oder NVR-Aufbauten in unserem eigenen Homelab machen wir keine Aussage.
Angenommen sind vier kabelgebundene PoE-Kameras mit je 4 Mbit/s im Hauptstream und einem Substream mit 1280x720, 7 Tage Dauerbetrieb und ein Intel-Mini-PC mit 16 GB RAM.
- Platte: 4 x 43,2 GB x 7 = 1.209,6 GB. Mit etwa 5 Prozent Reserve ergibt das mindestens 1,27 TB nutzbar. Wir würden eine 2-TB-Platte nehmen und Luft lassen.
- Detektor: OpenVINO auf der integrierten Grafik. Braucht der Rechner etwa 15 ms pro Erkennung, schafft er rund 66 pro Sekunde. Vier Kameras mit 5 fps liefern höchstens 20 Bilder pro Sekunde, und ein Bild kann mehrere Bewegungsbereiche enthalten. Die echte Last liegt also irgendwo unter der Summe. Miss sie nach einer Woche auf der Systemseite von Frigate.
- Dekodierung: vier 720p-Substreams mit 5 fps und
hwaccel_args: preset-vaapi.
Eine Compose-Datei nach dem Aufbau aus der Doku [7]. Passe Pfade und Gerät an deine Hardware an und berechne shm_size mit dem Rechner der Doku für deine Version. Der Standardwert von 64 MB ist für die meisten Aufbauten zu klein, das Symptom sind „Bus error“-Meldungen.
services:
frigate:
container_name: frigate
restart: unless-stopped
stop_grace_period: 30s
image: ghcr.io/blakeblackshear/frigate:0.18.2
shm_size: "512mb"
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
volumes:
- /etc/localtime:/etc/localtime:ro
- /srv/frigate/config:/config
- /srv/frigate/storage:/media/frigate
- type: tmpfs
target: /tmp/cache
tmpfs:
size: 1000000000
ports:
- "8971:8971"
- "8554:8554"
environment:
FRIGATE_RTSP_PASSWORD: ${FRIGATE_RTSP_PASSWORD}Das Tag 0.18.2 steht auf der Release-Seite [11], die Doku verwendet stable. In der config.yml nutzt eine Kamera den Substream für detect und den Hauptstream für record, und der Aufnahmeteil folgt der Doku-Voreinstellung „nur Bewegung“ [4][6]. Die Stream-Pfade sind Platzhalter, weil jede Marke eigene Pfade nutzt.
ffmpeg:
hwaccel_args: preset-vaapi
cameras:
einfahrt:
ffmpeg:
inputs:
- path: rtsp://viewer:{FRIGATE_RTSP_PASSWORD}@10.0.10.10:554/<substream-pfad>
roles:
- detect
- path: rtsp://viewer:{FRIGATE_RTSP_PASSWORD}@10.0.10.10:554/<hauptstream-pfad>
roles:
- record
detect:
width: 1280
height: 720
record:
enabled: True
motion:
days: 3
alerts:
retain:
days: 30
mode: motion
detections:
retain:
days: 30
mode: motionDer Detektor-Abschnitt fehlt mit Absicht. Die Syntax hat sich zwischen Versionen geändert: Die stabile Doku, die wir gelesen haben, nutzt detectors: mit einem model:-Block, die Entwicklungsdoku auf GitHub führt einen models:-Block mit Geräten. Kopiere den OpenVINO-Block aus der Dokumentation der Version, die du installierst [8].
Prüfliste
- Zähle die Kameras, die gleichzeitig Bewegung sehen können, und wähle den Detektor nach dieser Zahl statt nach der Gesamtzahl.
- Wähle den Detektor von der aktuellen Hardware-Seite und verzichte bei einem Neuaufbau auf einen Coral.
- Prüfe, ob die CPU AVX und AVX2 kann und ob die integrierte Grafik den Codec deiner Kameras dekodiert.
- Wähle Kameras mit H.264, einem zweiten Stream in niedriger Auflösung und Kabelanschluss.
- Suche jedes Kameramodell in der ONVIF-Liste konformer Produkte und teste die ONVIF-Anmeldung, bevor du etwas montierst.
- Addiere die PoE-Leistung aus den Datenblättern und vergleiche sie mit dem Switch-Budget plus Reserve.
- Berechne die Plattengröße mit Mbit/s x 86.400 / 8 / 1.000 für jeden aufgezeichneten Stream und schlage Reserve auf.
- Binde
/tmp/cacheals tmpfs ein und setzeshm_sizeaus dem Rechner für deine Version. - Lege die Kameras in ein eigenes VLAN oder Netz und halte Frigate aus dem offenen Internet heraus.
- Frag deine Landesdatenschutzbehörde oder eine Anwältin beziehungsweise einen Anwalt, bevor eine Kamera etwas außerhalb deines eigenen Grundstücks erfasst.