NEWS
Proxmox LXC mit Frigate
-
@da_woody sagte in Proxmox LXC mit Frigate:
@wal
Running Frigate in a VM on top of Proxmox, ESXi, Virtualbox, etc. is not recommended.
Damit ist eine VM, und nicht Docker unter Proxmox in einer LXC gemeint.
Ich bin auch von Frigate begeistert.
Ich nutze eine Full-HD und eine 5k-Kamera, wobei das Bild der 5k-Kamera mit go2rtc in 2 virtuelle (getrennte Bildbereiche) aufgesplittet wird.
In Frigate stehen somit 3 Kamerastreams zur Verfügung.Für die Bilderkennung nutze ich den Coral USB Stick, der zusammen mit der hardwarebeschleunigten Grafik (i5 Prozessor) in den LXC Container und letztendlich nach Docker durchgereicht werden.
Das funktioniert prima.Zwei h264-Videostreams aus go2rtc werden dann noch live zu Twitch gestreamt. (Für Vogelfreunde: Nistkasten-Kamera, wo gerade gebrütet wird.)
Tschau
Uwe -
@uweklatt sagte in Proxmox LXC mit Frigate:
Damit ist eine VM, und nicht Docker unter Proxmox in einer LXC gemeint.
sorry, liest sich anders.
-
Gestern wurde die Coral Dual EDGE TPU eingebaut.
Der PCI-E Key-E Adapter von Makerfab kam aus China:
30 Dollar Adapter
31 Dollar Versand über DHL
21 Euro Zollgebühren
macht mit Märchenumrechnungsfaktor von PayPal
82Euro- 63,90 Euro für die Dual Edge TPU mit Versand
145,90 Euro hat mich der Spass gekostet.
Die Adapter von Amazon usw. haben leider nur 1 Line für die Anbindung der TPU, deshalb wird nur eine CPU erkannt.
Der von Makerfab ist speziell für 2 Linien und der Dual TPU gemacht.
Das Ganze war jetzt trotzdem billiger als 2 x Coral USB bei Pollin. -
Ich lasse jetzt den Stream von der Sprechanlage direkt auf dem RPI4 in einen rtsp Stream umwandeln.
Die CPU-Last vom RPI4 ging von 5% auf 45% hoch und auf dem frigate LXC:
-
@wal Hallo Walter,
ich mühe mich bereits seit einigen Tagen Frigate zu benutzen. Ich habe dieses auf einem Gigabyte Brix mit einem I7 10710U unter Proxmox 7.4-3 installiert. Zusätzlich habe ich eine NVM-E TPU eingerichtet.
Als Kameras nutze ich diverse Reolink-Kameras, von denen ich jetzt eine konfiguriert habe.
Das einzige, was ich auf der Weboberfläche zu sehen bekomme ist dies:
Hast du ein paar Seiten, möglichst auf deutsch, wo man etwas Hilfe bei der Fehlersuche bekommen kann. Ich möchte deinen Beitrag hier nicht missbrauchen.
Grüße
Ralf -
@radi ,
zeig mal deine frigate.yaml und config.yaml. -
@wal Wie bekomme ich die Dateien denn hier eingefügt bzw. aus nano kopiert? Der Weg in Richtung nano kopieren und einfügen funktioniert ja problemlos. Nur in der Gegenrichtung mag es nicht.
-
@radi Ich habe die Dateien über Filezilla heruntergeladen und mit dem Notepad++ geöffnet. So geht es. Hier die config.yaml:
detectors: cpu1: type: cpu coral1: type: edgetpu device: pci:0 mqtt: host: 192.168.69.159 user: user password: PW cameras: back: ffmpeg: hwaccel_args: - -hwaccel - vaapi - -hwaccel_device - /dev/dri/renderD128 inputs: - path: rtsp://User:PW@192.168.69.162:554/h264Preview_01_main roles: - detect objects: track: - person - car - truck - bicycle - motorcycle - dog - cat snapshots: enabled: True timestamp: False bounding_box: False crop: False height: 175 required_zones: [] retain: default: 10 objects: person: 15
Und hier die frigate.yaml:
version: "3.9" services: frigate: container_name: frigate privileged: true # this may not be necessary for all setups restart: unless-stopped image: ghcr.io/blakeblackshear/frigate:stable shm_size: "64mb" # update for your cameras based on calculation above devices: - /dev/apex_0:/dev/apex_0 # - /dev/apex_1:/dev/apex_1 - /dev/dri/renderD128 # for intel hwaccel, needs to be updated for your hardware volumes: - /etc/localtime:/etc/localtime:ro - /home/frigate/config/config.yml:/config/config.yml:ro - /home/frigate/frigate:/media/frigate - type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear target: /tmp/cache tmpfs: size: 1000000000 ports: - "5000:5000" - "1935:1935" # RTMP feeds
Die User und Passwörter habe ich unkenntlich gemacht, auch wenn es lokale IP-Adressen sind.
-
@radi ,
das du nichts angezeigt bekommst, deutet darauf hin das die Config nicht stimmt.
nimm mal diese config, bis auf die detectors ist die gleich mit meiner:detectors: cpu1: type: cpu mqtt: host: 192.168.69.159 user: user password: Password cameras: back: ffmpeg: hwaccel_args: preset-vaapi inputs: - path: rtsp://User:PW@192.168.69.162:554/h264Preview_01_sub roles: - detect - path: rtsp://User:PW@192.168.69.162:554/h264Preview_01_main roles: - record detect: width: 640 height: 360 mqtt: enabled: False objects: track: - person - car - truck - bicycle - motorcycle - dog - cat snapshots: enabled: True timestamp: False bounding_box: False crop: False height: 175 required_zones: [] retain: default: 10 objects: person: 15 record: enabled: True retain: days: 7 mode: motion events: retain: default: 14 mode: active_objects objects: person: 14 dog: 2 car: 7
-
@wal Danke Walter,
ich probiere diese mal aus. Macht es deiner Meinung nach Sinn, die kleine Coral in der config zu aktivieren?
Gruß Ralf
-
@radi sagte in Proxmox LXC mit Frigate:
@wal Danke Walter,
ich probiere diese mal aus. Macht es deiner Meinung nach Sinn, die kleine Coral in der config zu aktivieren?
Gruß Ralf
falls du Bewegungen auswerten möchtest dann auf jeden Fall ja
-
was würdet ihr empfehlen habe auch proxmox in einem um350 mit 32 gb DDR
will auch frigate auf proxmox mit docker aber die videos auf synology aufnehmen.
Ich möchte auch objekterkennung und evtl gesichterkennung was würdet iht mir vorschlagen.
Google Coral M.2 Accelerator with Dual Edge TPU oder Google Coral TPU USB-Accelarator -
@exitus ,
ich würde jetzt auch nur noch den USB Coral kaufen, da der bei meinen 2 Cameras locker ausreichen würde und der Adapter den man für die Dual CPU braucht mit Versand und Steuern sehr viel kostet.
Ich denke bis 8 Cameras genügt ein USB, ist aber ohne Gewähr da nicht getestet.
Es kann ja auch ein zweiter dazu gesteckt werden.
Die Files auf den Fileserver ist ja auch kein Problem, du musst nur den Ordner im LXC mounten und zum Docker durchreichen. -
@wal Hallo Walter,
ich habe deine config.yaml angepasst (User und Paswörter) auf meinem System eingespielt. Das Ergebnis ist leider das selbe wie vorher. Gibt es noch irgendwelche Möglichkeiten, dem Fehler auf die Schliche zu kommen( z.B. Logfiles). Meine Kenntnisse mit Containern sind leider gleich Null, habe bis jetzt immer mit VM´s auf meinem Proxmox gearbeitet.
Grüße
Ralf -
@radi ,
ich habe die config.yml bei mir getestet und die funktioniert. Ich selber habe mich noch nicht mit Logfiles auseinander gesetzt.
Habe ich config solange angepasst bis es funktionierte.Laut Frigate Docu ist das die minimal config:
mqtt: enabled: False cameras: back: ffmpeg: inputs: - path: rtsp://User:PW@192.168.69.162:554/h264Preview_01_main roles: - detect detect: enabled: False width: 640 height: 480
teste diese nochmal und falls es nicht funzt, liegt es an was anderem.
-
@wal Hallo Walter,
vielen Dank für deine Mühen. Auch mit der minimalen config ändert sich bei mir nichts. Ich setze das Ganze nochmals neu auf. Wenn es bei allen anderen geht, muss ich ja irgendwo einen Fehler gemacht haben.
Ich wünsche Dir ein angenehmes Wochenende.
Ralf -
@radi ,
in der frigate config vom container wird das Laufwerk auf /media/frigate gemappt, falls es das Verzeichnis im LXC nicht nicht gibt .... -
Heute habe ich auf den Kernel 5.15.107-1-pve geupdatet und was soll ich sagen, die Coral Edge TPU funktioniert nicht mehr in einem Unprivilegierten Container.
Die Backups funktionieren auch nicht mehr. Ich installiere jetzt schon 5 Stunden am Proxmox und bin jetzt bei einem Privilegierten LXC gelandet.Edit: Ich habe die Rechte der Coral TPU von 660 auf 755 erhöht und da ging es dann.
-
@wal hallo welche lxc hast du genommen bei mir gibt es fehler mit pfad findet config nicht frigate geht in bootschleife .
habe ubuntu 22.1detectors: ^ expected <block end>, but found '<block mapping start>' in "<unicode string>", line 9, column 2: cameras: ^ 2023-05-07 12:39:35.229716379 [INFO] The go2rtc service exited with code 1 (by signal 0) 2023-05-07 12:39:36.234223582 [INFO] Preparing go2rtc config... Traceback (most recent call last): File "/usr/local/go2rtc/create_config.py", line 27, in <module> config: dict[str, any] = yaml.safe_load(raw_config) File "/usr/local/lib/python3.9/dist-packages/yaml/__init__.py", line 125, in safe_load return load(stream, SafeLoader) File "/usr/local/lib/python3.9/dist-packages/yaml/__init__.py", line 81, in load return loader.get_single_data() File "/usr/local/lib/python3.9/dist-packages/yaml/constructor.py", line 49, in get_single_data node = self.get_single_node() File "/usr/local/lib/python3.9/dist-packages/yaml/composer.py", line 36, in get_single_node document = self.compose_document() File "/usr/local/lib/python3.9/dist-packages/yaml/composer.py", line 55, in compose_document node = self.compose_node(None, None) File "/usr/local/lib/python3.9/dist-packages/yaml/composer.py", line 84, in compose_node node = self.compose_mapping_node(anchor) File "/usr/local/lib/python3.9/dist-packages/yaml/composer.py", line 127, in compose_mapping_node while not self.check_event(MappingEndEvent): File "/usr/local/lib/python3.9/dist-packages/yaml/parser.py", line 98, in check_event self.current_event = self.state() File "/usr/local/lib/python3.9/dist-packages/yaml/parser.py", line 438, in parse_block_mapping_key raise ParserError("while parsing a block mapping", self.marks[-1], yaml.parser.ParserError: while parsing a block mapping in "<unicode string>", line 1, column 1: detectors: ^ expected <block end>, but found '<block mapping start>' in "<unicode string>", line 9, column 2: cameras: ^ 2023-05-07 12:39:36.459721903 [INFO] The go2rtc service exited with code 1 (by signal 0) 2023-05-07 12:39:37.463508621 [INFO] Preparing go2rtc config... Traceback (most recent call last): File "/usr/local/go2rtc/create_config.py", line 27, in <module> config: dict[str, any] = yaml.safe_load(raw_config) File "/usr/local/lib/python3.9/dist-packages/yaml/__init__.py", line 125, in safe_load return load(stream, SafeLoader) File "/usr/local/lib/python3.9/dist-packages/yaml/__init__.py", line 81, in load return loader.get_single_data() File "/usr/local/lib/python3.9/dist-packages/yaml/constructor.py", line 49, in get_single_data node = self.get_single_node() File "/usr/local/lib/python3.9/dist-packages/yaml/composer.py", line 36, in get_single_node document = self.compose_document() File "/usr/local/lib/python3.9/dist-packages/yaml/composer.py", line 55, in compose_document node = self.compose_node(None, None) File "/usr/local/lib/python3.9/dist-packages/yaml/composer.py", line 84, in compose_node node = self.compose_mapping_node(anchor) File "/usr/local/lib/python3.9/dist-packages/yaml/composer.py", line 127, in compose_mapping_node while not self.check_event(MappingEndEvent): File "/usr/local/lib/python3.9/dist-packages/yaml/parser.py", line 98, in check_event self.current_event = self.state() File "/usr/local/lib/python3.9/dist-packages/yaml/parser.py", line 438, in parse_block_mapping_key raise ParserError("while parsing a block mapping", self.marks[-1], yaml.parser.ParserError: while parsing a block mapping in "<unicode string>", line 1, column 1: detectors: ^ expected <block end>, but found '<block mapping start>' in "<unicode string>", line 9, column 2: cameras: ^ 2023-05-07 12:39:37.661047849 [INFO] The go2rtc service exited with code 1 (by signal 0) 2023-05-07 12:39:38.665754030 [INFO] Preparing go2rtc config... Traceback (most recent call last): File "/usr/local/go2rtc/create_config.py", line 27, in <module> config: dict[str, any] = yaml.safe_load(raw_config) File "/usr/local/lib/python3.9/dist-packages/yaml/__init__.py", line 125, in safe_load return load(stream, SafeLoader) File "/usr/local/lib/python3.9/dist-packages/yaml/__init__.py", line 81, in load return loader.get_single_data() File "/usr/local/lib/python3.9/dist-packages/yaml/constructor.py", line 49, in get_single_data node = self.get_single_node() File "/usr/local/lib/python3.9/dist-packages/yaml/composer.py", line 36, in get_single_node document = self.compose_document() File "/usr/local/lib/python3.9/dist-packages/yaml/composer.py", line 55, in compose_document node = self.compose_node(None, None) File "/usr/local/lib/python3.9/dist-packages/yaml/composer.py", line 84, in compose_node node = self.compose_mapping_node(anchor) File "/usr/local/lib/python3.9/dist-packages/yaml/composer.py", line 127, in compose_mapping_node while not self.check_event(MappingEndEvent): File "/usr/local/lib/python3.9/dist-packages/yaml/parser.py", line 98, in check_event self.current_event = self.state() File "/usr/local/lib/python3.9/dist-packages/yaml/parser.py", line 438, in parse_block_mapping_key raise ParserError("while parsing a block mapping", self.marks[-1], yaml.parser.ParserError: while parsing a block mapping in "<unicode string>", line 1, column 1: detectors: ^ expected <block end>, but found '<block mapping start>' in "<unicode string>", line 9, column 2: cameras: ^ 2023-05-07 12:39:38.884406556 [INFO] The go2rtc service exited with code 1 (by signal 0)
version: "3.9" services: frigate: container_name: frigate privileged: true # this may not be necessary for all setups restart: unless-stopped image: ghcr.io/blakeblackshear/frigate:stable shm_size: "64mb" # update for your cameras based on calculation above devices: - /dev/bus/usb:/dev/bus/usb # passes the USB Coral, needs to be modified for other versions - /dev/apex_0:/dev/apex_0 # passes a PCIe Coral, follow driver instructions here https://cora> - /dev/dri/renderD128 # for intel hwaccel, needs to be updated for your hardware volumes: - /etc/localtime:/etc/localtime:ro - /frigate/config.yml:/config/config.yml:ro - /frigate:/media/frigate - type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear target: /tmp/cache tmpfs: size: 1000000000 ports: - "5000:5000" - "1935:1935" # RTMP feeds
volumes: - /etc/localtime:/etc/localtime:ro - /root/config/config.yml:/config/config.yml:ro - /root/frigate:/media/frigate
das klappte auch nicht
-
@exitus,
ich nutze das docker script von TTeck .
Konnte da man Ubuntu auswählen ?
Ich nutze Debian./frigate/config.yml
das kann nur funktionieren wenn im Ordner /frigate eine config.yml liegt.
Mittlerweile habe ich einen User frigate erstellt und im Userordner einen Ordner frigate, dort liegt meine config.yml.
- /home/frigate/frigate/config.yml:/config/config.yml