L'enfer Frigate

Mon problème

Bonjour à tous,

Je sais que vous êtes plusieurs à utiliser Frigate ici. Je l’utilise comme addon sous HA et franchement c’est un enfer.

J’ai acheté 1 coral en pci deja ca l’utilise très peu.

Après j’ai essayé un nombre important de config d’après des tuto et d’autre documents… Soit ca prend trop de capture ( prenant un exscalier pour une personne) soit rien du tout. C’est surtout la nuit.

J’ai mis des masques, des options d’images, changé les flux etc… rien à faire.

Même la carte frigate je n’arrive pas a l’utiliser et à passé des commandes par MQTT.

Alors biensur je ne dit pas que Frigate est mauvais et c’est surement moi qui merdouille mais j’en peu plus.

Je me demande si j’avais pas de meilleur résultat quand frigate était sur une vm seul.

Je suis preneur de retour d’experience histoire d’échanger ( je saisil y a plein de post au sujet de firgate mais pas un comme ca :slight_smile: )

Bonjour MaC_ToC,
Je suis passé sur un Frigate seul sur une LXC. Cela fonctionne déjà mieux mais comme toi je lis tuto après tuto et j’essaie d’affiner ma config. Je n’ai pas encore de CORAL et j’ai 6 caméras.
Une chose est sure, mon mode de fonctionnement c’est une fonction pour une machine virtuelle sous PROXMOX et mon Home Assistant qui vient récupérer ce dont j’ai besoin sur chaque VM. C’est lourd mais cela me va bien.

1 « J'aime »

@MaC_ToC bienvenu au club :smiley:
j’utilise frigate depuis maintenant presque 3 ans et j’avoue que ma config commence à peine a fonctionner correctement. la doc est un enfer, on trouve plus de solutions en cherchant dans les « issues » du repo github que dans la doc officielle.

J’ai dèjà essayé d’aider d’autres membres du forum mais j’avoue que ça devient vite compliqué tant il y a de paramètres différents selon la caméra

Par contre je n’ai pas de problèmes de faux positifs. je ne capture que les personnes et franchement ça, ça marche… quand tu dis que ton coral est très peu utilisé ? peux tu faire une petite capture d’écran?

voici ce que j’ai chez moi pour 4 caméras et ca fonctionne bien.

image

Bonjour,

Avec les caméras telles que Reolink qui savent pour 75€ différencier les ombres (soleil ou autre), les animaux, les humains, y a t-il encore un intérêt à déployer une ‹ grosse machine › comme Frigate ?

Perso j’ai 3 reolink et j’ai pas de résultat aussi bien de frigate voir aussi bien que surveillance station de synology.
Aprés tout le monde n’a pas les moyen forcement.

Même ca, ca à été galére …trouver comment faire en LXC sous proxmox… j’ai proxmox mais les tutos sont trop compliqués ou ne marchent pas. si tu as un lien je suis preneur pour tester

Je dirais que Frigate peut avoir un intérêt si on peut lui faire confiance à « 100% », c’est à dire déclencher une alarme sans avoir besoin de vérifier, est ce la cas ?

C’est un debat, mais quelle solution est parfaite ? S’il y en avait une tout le monde l’aurait …
Et puis c’est pas le bute de mon poste.
Si tu n’es pas la pour echanger sur Frigate Merci de laisser ceux qui l’utilise debatre.

En fait j’aurais bien aimé savoir s’il y a un intérêt à utiliser Frigate.

Mais ok, ce post est pour ceux qui l’utilisent, peut être sans chercher à comprendre s’il y a un intérêt ou non.

Bonne utilisation !

Je tente la mise en place de frigate de mon coté et certaine choses sont également assez incompréhensible.
J’avais un systeme qui fonctionnait correctement, la suite a coupure de courant et redémarrage de la machine sur laquelle tourne la vm, j’ai des erreur ffmeg qui réapparaissent. C’est un peu déroutant surtout quand on a rien modifier de particulier…

Bonjour,

bon, je vais un petit peu aller à l’encontre de ce qui a été dit et donner mes sources pour arriver au résultat que j’ai eu en quelques heures de tests. Il y a 2 semaines, je n’avais rien pour info…

  1. Oui c’est plus technique qu’une installe click « suivant », click « suivant », click « ok ». Mais franchement c’est pas non plus la mer à boire si on connait un minimum le monde Linux.

  2. Il y a vraiment beaucoup de source et même si on se limite au français, il y a ce qu’il faut.

  3. C’est surement le plus dépendant. Du matériel correct et surtout compatible sans bidouilles. Si les cams sont des bouses chinoises, bah le résultat ne sera pas à la hauteur espéré.

  4. Le budget et le temps. Si c’est pour installer sur un truc à la ramasse avec CPU prit à la gorge. Oubli.

Mon but : avoir un système de surveillance extérieur et intérieur pour ma maison.

Ce qui suis n’est que mon avis. Vous n’avez pas le même, ce n’est pas grave, on peut en discuter en argumentant.

J’ai regardé en amont ce que se faisait, ciblé ce que je voulais et acheté en période de promo.

En gros pour moi : NUC ou PC obligatoire, on abandonne tout ce qui est nanoPC et PI. Caméra de qualité, en 1920*1080 c’est suffisant, flux rstp en sortie. Coral en usb pour l’accélération de la reconnaissance. Partie GPU qui puisse faire le taf avec ffmpeg.
Pour la partie logiciel, une lxc (qui au passage n’est pas une VM…) sur proxmox. Frigate en docker.

Quand tout le matériel est réuni (ou une partie suffisante).
J’ai lancé une lxc dockge (en privilégié pour l’usb coral) avec un script présent sur l’excellent site : Proxmox VE Helper-Scripts | Scripts for Streamlining Your Homelab with Proxmox VE . J’aurai pu prendre avec un portainer, Mais je voulais tester Dockge en même temps. (perso il est trop bien pour l’utilisation que j’en fait).

Et j’ai lancé un docker-compose frigate en reprenant… bah… surprise, la doc officiel : Installation | Frigate. Que j’ai pris soins de lire correctement.

Vérifié que ça se lance. Et on passe au config.yaml avec… surprise, la doc officiel : Frigate Configuration | Frigate

Pour récupérer l’adresse des flux, un petit tour sur : Connecting to IP Cameras

Bref, après quelques essai, j’ai une première camera récupéré.

Je rajoute la partie mqtt dans la config. Ajouté l’extention de HACS. Fonctionne direct, RAS.

Je rajoute les autres cam, pour l’instant j’en ai trois.

Quelques jours plus tard, coral en usb dès que je le reçois.Pareil, la doc officiel pour les lignes de docker-compose et le config.yaml.

Et enfin la partie accélération gpu, pour moi c’est un AMD. Rien dans la doc officiel mais je comprend que c’est non officiellement supporté par vaapi.
rajout dans le docker-compose du :

 - /dev/dri/renderD128:/dev/dri/renderD128

et dans le config.yaml:

ffmpeg:
  hwaccel_args: preset-vaapi

Dernier point, ajout des notifications quand détection. Je ne veux pas d’usine à gaz, juste mis ce blueprint : HA_blueprints/Frigate Camera Notifications/Stable at main · SgtBatten/HA_blueprints · GitHub
et créé des automatisations avec test sur 2 input booléens (alarme et surveillance) qui active les automatisations des cam intérieur ou extérieur selon les inputs.

Et… bas ça tourne.

Depuis c’est petites retouches qui m’ont fait marré genre :
Comme ça reconnait bien, j’ai du masquer une partie du champ de la cam intérieur car reconnaissait les personnes sur la télé.
Et monté le min_score et le threshold pour la reconnaissance du chat car la coiffure d’une de mes filles était reconnu comme un chat.

Bref une expérience plutôt réussi pour moi.

Pour résumé de mon point de vue, il faut :

  • Lire la doc officiel avant et la comprendre.
  • Avoir une relative connaissance du monde linux.
  • Savoir se débrouiller sur proxmox et docker si c’est la solution choisie.
  • Voir plusieurs vidéo youtube / blog / site qui détails la mise en place de frigate pour avoir les petits tips ici et la.
  • Comprendre que si ça ne marche pas, c’est pas un échec ! C’est que tu as appris quelque chose !

:wink:

7 « J'aime »

je voudrais juste rajouter pour ceux qui voudraient se lancer dans le mini pc → INTEL !!! jamais d’amd :stuck_out_tongue: j’en ai fait les frais, ffmpeg n’aime pas trop les gpus radeon même si la doc dit qu’on peut passer le module radeonsi… ca marche oui mais ca a tendance a cracher après quelques heures

Je suis justement sur CPU amd et iGPU amd (AMD Ryzen 7 5700U with Radeon Graphics). Pas de crash de mon coté.

Tu parle surement plus des GPU dédié radeon. Du coup j’ai du mal à comprendre pourquoi Intel CPU obligatoire …

Ah !!??!! :smiley:

je suis intéresse par ta config alors !. j’ai justement acheté un mini pc ryzen 7 5700U, j’ai tenté de migrer frigate d’un J4125. Je ne suis pas sous proxmox, je tourne docker directement sur une debian 12, ca démarre mais après quelques heures j’ai un CPU lock preempt causé par ffmpeg. ma charge CPU monte a 40, les autres VMs continuent de fonctionner mais me logguer en SSH mets genre 10 minutes et la seule façon de reprendre la main c’est un bon

echo b > /proc/sysrq-trigger

Conso du CPU sous proxmox :

docker-compose (même si tu utilise pas je mets au cas ou) et justement je vois que j’ai une variable env « LIBVA_DRIVER_NAME: radeonsi » :

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: 128mb # update for your cameras based on calculation above
    devices:
      - /dev/dri/renderD128:/dev/dri/renderD128 # For intel hwaccel, needs to be updated for your
      - /dev/bus/usb:/dev/bus/usb
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /srv/config:/config
      - /frigate/media:/media/frigate
      - type: tmpfs
        target: /tmp/cache
        tmpfs:
          size: 1000000000
    ports:
      - 5000:5000
      - 8554:8554 # RTSP feeds
      - 8555:8555/tcp # WebRTC over tcp
      - 8555:8555/udp # WebRTC over udp
    environment:
      FRIGATE_RTSP_PASSWORD: password
      LIBVA_DRIVER_NAME: radeonsi
networks: {}

config frigate :

mqtt:
  host: XXX.XXX.XXX.XXX
  user: leuserquilébo
  password: lemotdepassequilédur
  stats_interval: 60

detectors:
  coral:
    type: edgetpu
    device: usb

ffmpeg:
  hwaccel_args: preset-vaapi

birdseye:
  enabled: false
rtmp:
  enabled: false

snapshots:
  enabled: true
  clean_copy: True
  timestamp: false
  bounding_box: True
  crop: False
  retain:
    default: 30
    objects:
      person: 30

record:
  enabled: true
  retain:
    days: 1
    mode: motion
  events:
    pre_capture: 5
    post_capture: 5
    retain:
      default: 15
      mode: motion

cameras:
  Cam1:
    ffmpeg:
      inputs:
      - path: rtsp://192.168.X.X/main_ch
        roles:
        - detect
    detect:
      width: 1280
      height: 720
      fps: 5
      enabled: True

    objects:
      filters:
        person:
          min_score: 0.6
          threshold: 0.75
          mask:
          - 1091,582,1259,630,1280,425,1095,418
        cat:
          min_score: 0.6
          threshold: 0.75

    mqtt:
      enabled: True
      timestamp: False
      bounding_box: True
      crop: True

  Cam2:
    ffmpeg:
      inputs:
      - path: rtsp://compte:mdp@192.168.X.X:554/h264Preview_01_main
        roles:
        - detect
    detect:
      width: 1280
      height: 960
      fps: 5
      enabled: True

    objects:
      filters:
        person:
          min_score: 0.6
          threshold: 0.75
        cat:
          min_score: 0.6
          threshold: 0.75

    mqtt:
      enabled: True
      timestamp: False
      bounding_box: True
      crop: True
  
  Cam3:
    ffmpeg:
      inputs:
      - path: rtsp://compte:mdp@192.168.X.X:554/h264Preview_01_main
        roles:
        - detect
    detect:
      width: 1280
      height: 960
      fps: 5
      enabled: True

    objects:
      filters:
        person:
          min_score: 0.6
          threshold: 0.75
        cat:
          min_score: 0.6
          threshold: 0.75

    mqtt:
      enabled: True
      timestamp: False
      bounding_box: True
      crop: True

objects:
  track:
  - person
  - cat

Pas de crash depuis la mise en place. ça pleure un peu coté log dans frigate (dsl flemme d’anonymiser). C’est coté perte de trame, rien d’inquiétant, juste que le flux passe par cam > wifi > routeur 1 > wifi backhaul > routeur 2 > serv. Donc j’ai quelques trames vidéo de perdu de temps en temps. Pour tout te dire je ne m’en était même pas aperçu…

1 « J'aime »

j’ai exactement la meme config :rofl: docker-compose … 4 cameras ca fonctionne pendant 2 à 3 heures et puis pouf :smiley: ze mer…

je relancerai demain mais bon je n’y crois pas trop, j’y ai passé mon week-end… crashs sur crash, je suis finalement revenu sur mon J4125 et là pico-bello

Bah pas exactement exactement…

Je suis sous proxmox, donc le cpu n’est pas dédié qu’à ça (8 cores sur les 16, je laisse tourner un petit mois pour voir si je baisse). Et il peut y avoir des effets de bords qui bloquent le problème du fait que ça tourne en hyperviseur. Je ne suis pas spécialiste, je ne connais pas les implications profondes genre est ce que le CPU est émulé comme une VM sur lxc… de ce que j’en comprend je dirais que non…

Et tu as un module coral pour alléger la charge CPU pour la partie détection ?

Bref, je note et ajouterai un message sur ce topic si vraiment la charge CPU augmente anormalement mais en tout cas pour l’instant, tu peux voir que c’est trankilou.

Sur frigate (3ieme cam débranché pour l’instant, pas encore installé) :

oui oui j’ai aussi un coral en usb
je tenterai peut être aussi avec proxmox. au final ça ne me dérange pas vu que j’ai deja un autre pc qui tourne proxmox, je pourrai ajouter le mini pc au cluster :D. l’autre pc est presque toujours éteint car c’est un monstre qui pompe plus de 100 watts et au vu du prix de l’énergie, j’ai voulu faire plus soft :smiley:

bon il y a bien évidement pas mal de differences, tout peut jouer ( version de firmware, version de bios etc… ) la seule grosse difference c’est que je suis en frigate 13-beta6

image: ghcr.io/blakeblackshear/frigate:0.13.0-beta6

Tiens nous au courant :slight_smile:

Juste une dernière chose avant que tu fasse joujou avec les clusters proxmox. Renseigne toi bien sur comment fonctionne le quorum (sorte de vote sur le cluster).

Pour simplifier, chacun à le droit de vote, et c’est la majorité qui l’emporte quand le quorum est réunis. Dans le réglage de base, chaque votant a le même poids.Sur un cluster de deux ça pose de problèmes, si un votant n’est pas la, le vote est bloqué. Comprendre ça peut bloquer toutes tes lxc et vm du cluster. Et ça c’est plutôt gênant…
Donc comme tu as une machine qui n’est pas online h24, je déconseille. D’ailleurs je déconseille aussi sur 2 machines online h24 puisqu’on se rend compte du problème quand une des machines plante, tout plante.

Aller dodo time pour moi. :zzz:

1 « J'aime »

De mon côté aussi, Frigate en LXC sous proxmox avec CORAL usb, sur PC intel i5.
4 caméras, dont 3 Reolink HD et une noname SD
Système stable jusque là: 6 mois que le CORAL est installé.
EDIT : je précise que j’ai quand même quelques erreurs dans les logs mais je ne m’en suis pas occupé.

image

Si ça peut aider:

(frigate)configuration.yaml
mqtt:
  host: @IP
  # port: 1883
  ### Optional (default: 1883)
  user: LOGIN
  password: PASSWD

detectors:
  # cpu1:
  #   type: cpu
  coral:
    type: edgetpu
    device: usb

birdseye:
  enabled: false
  width: 2560
  height: 1920
  mode: continuous
  ### objects / motion / continuous
  quality: 8
  ### Optional: 1(best) to 31(lowest) (default: 8) + mind CPU ressources

detect:
  enabled: True
  width: 640
  height: 480
  fps: 5
  ### NOTE: Recommended value of 5. Ideally, try and reduce your FPS on the camera.
  max_disappeared: 25
  ### Optional: Number of frames without a detection before frigate considers an object to be gone. (default: 5x the frame rate)

record:
  enabled: true
  retain:
    days: 0
    ### Optional: Number of days to retain recordings regardless of events (default: 0)
    ### NOTE: This should be set to 0 and retention should be defined in events section below if you only want to retain recordings of events.
    mode: active_objects
    ### Optional: all / motion / active_objects
    ### NOTE: this mode only applies when the days setting above is greater than 0

  events: ### Optional: Maximum length of time to retain video during long events. (default: shown below)
          ### NOTE: If an object is being tracked for longer than this amount of time, the retained recordings
          ### will be the last x seconds of the event unless retain_days under record is > 0.
    pre_capture: 15
    ### Optional: Number of seconds before the event to include (default: 5)
    post_capture: 5
    ### Optional: Number of seconds after the event to include (default: 5)
    objects:
    ### Optional: Objects to save recordings for. (default: all tracked objects)
      - person
      - car
      # - bicycle
      # - motorcycle
      - cat
      # - dog
    # required_zones: []
    ### Optional: Restrict recordings to objects that entered any of the listed zones (default: no required zones)

    retain:
    ### Optional: Retention settings for recordings of events
      default: 4
      ### Required: Default retention days (default: 10)
      mode: active_objects
      ### Optional: all / motion / active_objects
      ### NOTE: If the retain mode for the camera is more restrictive than the mode configured
      #       here, the segments will already be gone by the time this mode is applied.
      #       For example, if the camera retain mode is "motion", the segments without motion are
      #       never stored, so setting the mode to "all" here won't bring them back.
      objects:
      ### Optional: Per object retention days
        person: 7

snapshots:
### Optional: Configuration for the jpg snapshots written to the clips directory for each event
### NOTE: Can be overridden at the camera level
  enabled: true
  clean_copy: false
  ### Optional: save a clean PNG copy of the snapshot image (default: true) # =================== MODIF de true à false le 11/01/23
  timestamp: false
  ### Optional: print a timestamp on the snapshots (default: false)
  bounding_box: true
  ### Optional: draw bounding box on the snapshots (default: false)
  crop: false
  ### Optional: crop the snapshot (default: false)
  # height: 175
  ### Optional: height to resize the snapshot to (default: original size)
  # required_zones: []
  ### Optional: Restrict snapshots to objects that entered any of the listed zones (default: no required zones)

  retain:
  ### Optional: Camera override for retention settings (default: global values)
    default: 7
    ### Required: Default retention days (default: 10)
    objects:
    ### Optional: Per object retention days
      person: 14

rtmp:
### Optional: RTMP configuration
### NOTE: Can be overridden at the camera level
  enabled: false
  ### Optional: Enable the RTMP stream (default: true)

ffmpeg:
  # hwaccel_args: preset-vaapi
  hwaccel_args: preset-intel-qsv-h264


live:
### Optional: Live stream configuration for WebUI
### NOTE: Can be overridden at the camera level
  # height: 720
  ### Optional: Set the height of the live stream. (default: 720)
  ### This must be less than or equal to the height of the detect stream. Lower resolutions
  ### reduce bandwidth required for viewing the live stream. Width is computed to match known aspect ratio.
  quality: 8
  ### Optional: 1(best) to 31(lowest) (default: 8) + mind CPU ressources

objects:
  filters:
    person:
      min_area: 1800
      ### Optional: minimum width*height of the bounding box for the detected object (default: 0)
      max_area: 12600
      ### (default: 24000000)
      min_ratio: 0.5
      ### Optional: minimum width/height of the bounding box for the detected object (default: 0)
      max_ratio: 2.0
      ### (default: 24000000)
      min_score: 0.5
      threshold: 0.7
      ### Optional: minimum decimal percentage for tracked object's computed score to be considered a true positive


##################
###   go2rtc   ###
##################

go2rtc:
  streams:
    camjardin_live_main:
      - rtsp://FLUX
    camjardin_live_sub:
      - rtsp:/FLUX
    camchemin_live_main:
      - rtsp:/FLUX
    camchemin_live_sub:
      - rtsp://FLUX
    camparking_live_main:
      - rtsp://FLUX
    camparking_live_sub:
      - rtsp://FLUX
    camplus_live:
      - rtsp://FLUX

###################
###   CAMERAS   ###
###################

cameras:

### ============================================================================================================== PARKING
  camparking:
    ffmpeg:
      output_args:
        record: preset-record-generic-audio-copy
      inputs:
        - path: rtsp://127.0.0.1:8554/camparking_live_main
          input_args: preset-rtsp-restream
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/camparking_live_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
      # hwaccel_args: preset-intel-qsv-h265
      # hwaccel_args: preset-intel-qsv-h264
      # hwaccel_args: preset-vaapi
    live:
      stream_name: camparking_live_sub
    # motion:
    #   mask:
    #     - 640,0,640,214,328,290,0,204,0,0
    objects:
      track:
        - person
        - car
      # mask:
      #   - 640,0,640,169,448,233,346,0
      #   - 0,0,186,0,0,480
      #   - 193,0,335,0,353,30,238,74
    # best_image_timeout: 60
    mqtt:
      enabled: true
      timestamp: false
      bounding_box: true
      crop: false
      # height: 270
      # quality: 70
      # required_zones: []
    ui:
      order: 1
      dashboard: true

### ============================================================================================================== CHEMIN
  camchemin:
    ffmpeg:
      output_args:
        record: preset-record-generic-audio-copy
      inputs:
        - path: rtsp://127.0.0.1:8554/camchemin_live_main
          input_args: preset-rtsp-restream
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/camchemin_live_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
      # hwaccel_args: preset-intel-qsv-h265
      # hwaccel_args: preset-intel-qsv-h264
      # hwaccel_args: preset-vaapi
    live:
      stream_name: camchemin_live_sub
    # zones:
    #   chemin:
    #     coordinates: 0,0,260,0,380,480,0,480
    #   cour:
    #     coordinates: 260,0,640,0,640,480,380,480
    # motion:
    #   mask:
    #     - 640,0,640,96,338,91,374,314,640,480,0,480,285,214,190,135,85,145,35,256,0,269,0,0
    objects:
      track:
        - person
        - car
    mqtt:
      enabled: true
      timestamp: false
      bounding_box: true
      crop: false
      # height: 270
      # quality: 70
      # required_zones: []
    ui:
      order: 2
      dashboard: true
      
# ### ============================================================================================================== JARDIN
  camjardin:
    ffmpeg:
      output_args:
        record: preset-record-generic-audio-copy
      inputs:
        - path: rtsp://127.0.0.1:8554/camjardin_live_main # <--- the name here must match the name of the camera in restream
          input_args: preset-rtsp-restream
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/camjardin_live_sub # <--- the name here must match the name of the camera_sub in restream
          input_args: preset-rtsp-restream
          roles:
            - detect
      # hwaccel_args: preset-intel-qsv-h265
      # hwaccel_args: preset-intel-qsv-h264
      # hwaccel_args: preset-vaapi
    live:
      stream_name: camjardin_live_sub

    # motion:
    #   mask:
    #     - 0,0,640,0,640,480,521,480,607,74,256,35,101,83,109,292,0,341
    objects:
      track:
        - person
        - cat
      # mask:
      #   - 114,297,261,384,312,480,0,480,0,0,376,0,357,47,96,77
      #   - 396,97,395,0,640,0,640,123
      #   - 301,25,300,113,225,121,225,43
    mqtt:
      enabled: true
      timestamp: false
      bounding_box: true
      crop: false
      # height: 270
      # quality: 70
      # required_zones: []
    ui:
      order: 3
      dashboard: true

# ### ============================================================================================================== GARAGE
  camplus:
    ffmpeg:
      output_args:
        record: preset-record-generic-audio-copy
      inputs:
        - path: rtsp://127.0.0.1:8554/camplus_live
          input_args: preset-rtsp-restream
          roles:
            - record
            - detect
      # hwaccel_args: preset-intel-qsv-h265
      # hwaccel_args: preset-intel-qsv-h264
      # hwaccel_args: preset-vaapi
    live:
      stream_name: camplus_live
    objects:
      track:
        - cat
    mqtt:
      enabled: true
      timestamp: false
      bounding_box: true
      crop: false
    ui:
      order: 4
      dashboard: true