Hier draait Frigate met Dual TPU binnen home assistant met een veelvoud aan reolink camera's, een antieke dahua en zelfs een oude smartphone. Hopelijk maakt dat dat ik mij mag scharen onder de groep van "zij die tips kunnen geven" 
Vaak is de basis een correcte config van je camera zelf: resolutie, framerate, constant bitrate zijn aspecten die de stream frigate uitleest beinvloeden: hogre resoluties maken dat frigate meer CPU/GPU gebruikt, evenals een hogere framerate. Bitrate wil je voor frigate veelal op constant hebben staan.
Als je clients hebt die verbinding maken met een enkele camera dan is het gebruik van Go2RTC binnen frigate zinvol; dan leest Go2RTC alle ingevoerde camera's 1x uit en alle andere clients kunnen dan verbinding maken met de stream via frigate ipv rechtstreeks met de camera, waardoor de camera zelf wordt ontlast. Dit geef ik nu even aan omdat ik in mijn onderstaande voorbeeld dus wel rechtstreeks met de camera verbindt omdat er in mijn geval niets anders verbonden is met de Dahua.
Onderstaand mijn config voor de Dahua en benodigde detectors/ffmpeg instellingen:
Zoals je ziet: geen Go2RTC opgegeven. Verder is dit ook zo'n beetje de meest basic config voor een camera. Onderstaand nog de instellingen in de camera zelf wat betreft de stream. Weinig spannends. De oplettende lezer zal zien dat mijn detect stream wordt verkleind van 2592x1520@30fps naar 1920x1080@10fps om het systeem toch een beetje te ontzien.
:strip_exif()/f/image/XhIWmVIGOMHgxfgFpw9jm6Mt.png?f=user_large)
Verder: Check de logs ook vaak. Als frigate een stream niet kan openen geeft het log vaak best goed aan wat er mis is. Onderstaand een voorbeeld bij mij. (De telefoon staat niet aan, dus kan Go2RTC geen stream openen en geeft de camera binnen frigate een 404 omdat de stream bij Go2RTC (op IP 127.0.0.1 dus ook niet bestaat. Best logisch dus.)
Vaak is de basis een correcte config van je camera zelf: resolutie, framerate, constant bitrate zijn aspecten die de stream frigate uitleest beinvloeden: hogre resoluties maken dat frigate meer CPU/GPU gebruikt, evenals een hogere framerate. Bitrate wil je voor frigate veelal op constant hebben staan.
Als je clients hebt die verbinding maken met een enkele camera dan is het gebruik van Go2RTC binnen frigate zinvol; dan leest Go2RTC alle ingevoerde camera's 1x uit en alle andere clients kunnen dan verbinding maken met de stream via frigate ipv rechtstreeks met de camera, waardoor de camera zelf wordt ontlast. Dit geef ik nu even aan omdat ik in mijn onderstaande voorbeeld dus wel rechtstreeks met de camera verbindt omdat er in mijn geval niets anders verbonden is met de Dahua.
Onderstaand mijn config voor de Dahua en benodigde detectors/ffmpeg instellingen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
| detectors:
coral01:
type: edgetpu
device: pci:0
coral02:
type: edgetpu
device: pci:1
# M2 Dual TPU in een M2 > PCI adapter. Kan ook CPU of NVidia oid zijn
ffmpeg:
hwaccel_args: preset-vaapi
input_args: preset-rtsp-restream
output_args:
record: preset-record-generic-audio-aac
# Hardware acceleration op de Intel iGPU. Omdat ik voor andere camera's wel Go2RTC gebruik staat input_args op rtsp restream. (Want home assistant gebruikt de restreams, behalve de dahua) Als je dit niet opgeeft pakt frigate een aantal default waardes. Dus dit is vooral een stukje optimalisatie obv de aanwezige hardware.
Dahua:
enabled: true
ffmpeg:
inputs:
- path: rtsp://USER:PASS@IPADDRESS:PORT/cam/realmonitor?channel=1&subtype=0
roles:
- detect
- record
detect:
enabled: true # <---- disable detection until you have a working camera feed
width: 1920 # <---- update for your camera's resolution
height: 1080 # <---- update for your camera's resolution
fps: 10
record: # <----- Enable recording
enabled: true
retain:
days: 2
mode: all
alerts:
retain:
days: 2
detections:
retain:
days: 2
snapshots: # <----- Enable snapshots
enabled: true
bounding_box: false
retain:
default: 1
objects:
person: 1
ui:
order: 9
dashboard: true |
Zoals je ziet: geen Go2RTC opgegeven. Verder is dit ook zo'n beetje de meest basic config voor een camera. Onderstaand nog de instellingen in de camera zelf wat betreft de stream. Weinig spannends. De oplettende lezer zal zien dat mijn detect stream wordt verkleind van 2592x1520@30fps naar 1920x1080@10fps om het systeem toch een beetje te ontzien.
:strip_exif()/f/image/XhIWmVIGOMHgxfgFpw9jm6Mt.png?f=user_large)
Verder: Check de logs ook vaak. Als frigate een stream niet kan openen geeft het log vaak best goed aan wat er mis is. Onderstaand een voorbeeld bij mij. (De telefoon staat niet aan, dus kan Go2RTC geen stream openen en geeft de camera binnen frigate een 404 omdat de stream bij Go2RTC (op IP 127.0.0.1 dus ook niet bestaat. Best logisch dus.)