Frigate: Problème d'enregistrement vidéo

Bonjour à tous,

Je rencontre quelques soucis d’enregistrement de vidéos pour l’une de mes caméras dans frigate.

Pour commencer petit tour de l’infrastructure.

Nuc sous proxmox:

  • VM Home assistant qui est sous HA OS (2 CPU / 4G de ram)
  • Container LXC (dans proxmox) pour Docker(2 CPU / 2 G de ram)
    → Container (dans docker) pour Frigate

Nas synology pour stocker les médias
Remarque: Par le passé j’ai essayé surveillance station, mais je ne suis pas convaincu, et au dessus de 2 caméras c’est payant

2 Caméras pour l’instant (je veux m’équiper de caméras supplémentaires, probablement des réolink)

  • 1 Foscam
  • 1 Dahua (portier vidéo)

Premiers tests (Ok)
Pour faire mes tests, j’ai dans un premier temps installé Frigate (version full access) directement dans Home Assistant, paramétré mes caméras, masques… tout fonctionnai correctement, mais ce n’était pas l’installation cible (HA n’a pas vocation à être un NVR, ni à stocker mes vidéos)

Bascule vers un container (Ko partiel)
Puis j’ai basculer vers une installation de frigate dans un container docker, avec stockage des médias dans mon NAS (en m’appuyant entres autres sur la video de DCJona).

Le live fonctionne correctement, la détection également, les events sont correctement créés, les snapshots aussi, par contre pour ma caméra Dahua, les vidéos ne sont pas correctement enregistrées (j’ai bien des fichiers qui sont créés dans les médias, mais je n’ai qu’un écran noir, et sous Frigate, j’ai le message d’erreur: « The media could not be loaded, either because the server or network failed or because the format is not supported. »)

J’ai tenté une réinstallation « dans HA », et j’ai le même problème (alors que je ne l’avais pas lors de mes premiers tests).

  • Dans la mesure ou j’ai bien le live je me dit que le problème est coté Frigate
  • Puis comme ça fonctionne pour une caméra et pas pour l’autre, je me dis que c’est un paramétrage du fichier de config
  • Puis comme ça fonctionnai avant sous HA et plus maintenant je me dis que j’ai du changer un paramétrage quelque part (mais je ne vois pas quoi)

Pas d’erreur particulière dans les logs

Une piste de ce qui pourrais poser problème?

Configuration

config.yml :


 
 mqtt:
  host: 192.168.1.xxx
  user: user
  password: pass 

cameras:
  camera_interieur:  # Celle qui marche bien
    ffmpeg:
      inputs:
        - path: rtsp://user:pass@192.168.1.xxx:88/videoMain
          roles:
            - detect
            - rtmp
            - record
    detect:
      width: 1280
      height: 720
    record:
      enabled: true
      events:
        retain:
          default: 2
    snapshots: 
      enabled: true
      retain: 
        default: 2

  camera_sonette:  # Celle qui pose problème
    ffmpeg:
      inputs:
        - path: rtsp://user:pass@192.168.1.xxx:554/cam/realmonitor?channel=1&subtype=0
          roles:
            - record
            - detect
            - rtmp          
    detect:
      width: 1280
      height: 720
    rtmp:
      enabled: false  # J'ai tenté en l'activant, ça ne change rien
    motion: 
      mask: 
        - 1280,0,538,0,617,359,1280,660    
        - 0,720,804,720,804,550,0,550      
    record:
      enabled: true
      events:
        retain:
          default: 2
    snapshots: 
      enabled: true
      retain: 
        default: 2

docker-compose.yml:

version: "3.9"
services:
  frigate:
    container_name: frigate
    privileged: false  # this may not be necessary for all setups
    restart: unless-stopped
    image: blakeblackshear/frigate:stable    # J'ai tenté avec le frigate:stable-amd64 ça ne change rien
    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://coral.ai/docs/m2/get-started/#2a-on-linux
      #- /dev/dri/renderD128 # for intel hwaccel, needs to be updated for your hardware
	# Remarque: Lorsque j'active /dev/dri/renderD128, impossible de lancer le container
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /home/frigate/config.yml:/config/config.yml:ro
      - /mnt/nfs-backup:/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
    environment:
      FRIGATE_RTSP_PASSWORD: "password"

Précision qui peut je suppose avoir son importance.

En cherchant à corriger mon problème, j’ai constaté que la caméra qui pose problème (Dahua VTO2202F), stream du MJPEG, et je ne sais pas si c’est du H264 (je n’y comprends pas grand chose à cela):

image

En complément, en y regardant de plus près, les fichiers qui sont sauvegardés ont bien la vidéo, mais illisible ni avec media player classic (que j’utilise habituellement), ni dans le navigateur avec frigate (j’ai essayé avec chrome, avec edge, avec firefox), mais fonctionne avec VLC.
Je me suis demandé si il n’y avais pas un truc a changer coté paramétrage de la caméra, mais on ne peux pas dire qu’il y ait beaucoup d’options:

Salut,

Tu utilise le même flux pour faire la détection et le record.
C’est dommage car tu peux utiliser 2 flux distincts
Et ça soulagerait ton cpu de faire la détection sur un flux plus faible

La lecture ne fonctionne pas depuis la carte frigate (HACS) ou depuis l’addon ?

1 « J'aime »

Merci à toi pour la réponse.

Pour le fait de sppliter les flux, le portier Dahua VTO stream en 720p maxi, quand je réduis la qualité, pour la détection mon live n’est pas assez qualitatif.

La lecture ne fonctionnait plus ni depuis frigate, ni depuis la carte, ni même en ouvrant le fichier mp4 avec media player classic.

Mais bonne nouvelle ça refonctionne!
Pour une raison qui me dépasse, je pense que surveillance station (nas synology) foutais la merde. En fait j’ai juste désactivé la caméra dedans, puis réactivée et ça a suffit pour faire rentrer les choses dans l’ordre.
En plus, les fichiers créés sont beaucoup moins volumineux (~1méga pour 10 secondes, contre 30 mégas quand j’avais le problème)