Rotation des images dans Frigate avec Go2RTC

Bonjour à tous…

Je viens d’installer HA (dans sa dernière version) sur Rpi.

En complément de mon NVR dédié, j’ai installé Frigate pour accéder à distance à mes caméras et déclencher certains scénarios…

J’ai une caméra installée à 90°. Elle s’affiche donc normalement, sauf qu’au final, l’image est couchée et c’est particulièrement désagréable de devoir tourner la tête…

J’ai cherché comment faire tourner l’image à 90° pour qu’elle s’affiche correctement mais rien n’y fait. Je n’arrive pas à paramétrer correctement Frigate pour qu’il me fasse tourner l’image.

Quelqu’un pourrait-il m’aider ou m’orienter vers un tuto bien écrit car tout ce que j’ai trouvé ne m’aide pas à solutionner mon problème.

Mon fichier de config… (extrait)…

go2rtc:
  streams:
    test:
      - rtsp://login:mdp@1.2.3.4:554/channel=1_stream=1.sdp

cameras:
  cote_chambre:
    ffmpeg:
      output_args:
        record: preset-record-generic-audio-aac #Insert this if your camera supports audio output
      inputs:
        - path: rtsp:127.0.0.1:8554/test
          roles:
            - detect
    detect:
      enabled: False
      width: 640
      height: 360

(Dans cette config, je visionne ma caméra sans problèmes)
J’ai essayé d’ajouter rotate, transpose… Peut-être n’ai je pas saisi les bonnes commandes.

Merci de votre aide.

Je ne connais pas Go2RTC, Reolink fonctionne si bien nativement dans HA mais ne serait-ce pas un paramétrage de ta caméra qu’il faudrait faire ?
Sur les ESP32CAM il y a:

  vertical_flip: false
  horizontal_mirror: false

Bob

Bonjour Bob,

Malheureusement, c’est un CAM chinoise (hardw XM propriétaire). J’ai accès au flux RTSP et ONVIF.

Vertical flip ne fonctionne pas.

Accédant à mon NVR pour éviter de saturer les flux des CAMS, je n’ai accès qu’en RTSP au NVR.

Il n’y a pas une interface de configuration en http dans ta cam ?
Même sur les moins cher il y toujours des options de miroir/rotation; ça serait étonnant que la tienne n’en soit pas équipée.

1 « J'aime »

Bonjour,

La carte webRTC permet de faire une rotation de l’image à priori : GitHub - AlexxIT/WebRTC: Home Assistant custom component for real-time viewing of almost any camera stream using WebRTC and other technologies.

Bonjour @Boulzor,

Peut-tu essayer en adoptant cette config :

go2rtc:
  streams:
    test:
      - rtsp://login:mdp@1.2.3.4:554/channel=1_stream=1.sdp
    test_rotate:
      - "ffmpeg:test#video=h264#rotate=90"    ######  <== le nom doit correspondre à la caméra originale ci-dessus, et adapter le degré de rotation (90/180...etc) 

cameras:
  cote_chambre:
    ffmpeg:
      output_args:
        record: preset-record-generic-audio-aac #Insert this if your camera supports audio output
      inputs:
        - path: rtsp://127.0.0.1:8554/test_rotate
          roles:
            - detect
    live:
      stream_name: test_rotate
    detect:
      enabled: False
      width: 640
      height: 360

Pour résumer, tu déclares un second flux dans Go2RTC qui reprend le premier en appliquant une rotation choisie, le lien de ce dernier doit contenir le nom du premier flux (ici « test ») pour correspondre.
Pour la config de tes caméras, c’est ce second flux que tu utilises.

Je n’ai pas essayé de mon côté donc à tester.

Malheureusement non… J’ai un mode mirroir ou retournement mais pas de flip…

J’ai essayé sous toutes ses formes… Voici les logs en retour.

2025-05-16 16:23:10.254873196  18:23:10.254 WRN [rtsp] error="streams: exec: [rtsp @ 0x556332aeb0] Unable to open RTSP for listening\nrtsp://XXX:xxx@192.168.X.X:554/channel=3_stream=1.sdp: Cannot assign requested address\n" stream=test_rotate
2025-05-16 16:23:10.273411851  [2025-05-16 18:23:10] frigate.video                  ERROR   : test_rotate: Unable to read frames from ffmpeg process.
2025-05-16 16:23:10.282065406  [2025-05-16 18:23:10] frigate.video                  ERROR   : test_rotate: ffmpeg process is not running. exiting capture thread...
2025-05-16 16:23:10.300336559  [2025-05-16 18:23:10] frigate.api.fastapi_app        INFO    : FastAPI started
2025-05-16 16:23:14.389036802  [INFO] Starting go2rtc healthcheck service...
2025-05-16 16:23:29.849862023  [2025-05-16 18:23:29] watchdog.test_rotate          ERROR   : Ffmpeg process crashed unexpectedly for cote_chambre.
2025-05-16 16:23:29.853277686  [2025-05-16 18:23:29] watchdog.test_rotate          ERROR   : The following ffmpeg logs include the last 100 lines prior to exit.
2025-05-16 16:23:29.853342594  [2025-05-16 18:23:29] ffmpeg.test_rotate.detect     ERROR   : [rtsp @ 0x55988e9f30] method DESCRIBE failed: 404 Not Found
2025-05-16 16:23:29.853397131  [2025-05-16 18:23:29] ffmpeg.test_rotate.detect     ERROR   : rtsp://127.0.0.1:8554/test_rotate: Server returned 404 Not Found

Étonnant… je viens d’essayer chez moi à 180° et ça fonctionne :

Voici le fichier de config chez moi pour ce test :

go2rtc:
  streams:
    salon_test:
      - rtsp://user:password@192.168.0.43:554/stream1
    salon:
      - "ffmpeg:salon_test#video=h264#rotate=180"

cameras:
  Salon:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/salon
          input_args: preset-rtsp-restream
          roles:
            - record
            - detect

    detect:
      enabled: false
      width: 1280
      height: 720
      fps: 5
...

J’ai ressayé, toujours pas… C’est pas possible. Je pense que c’est ma caméra qui pose problème. Je vais explorer ça.

J’ai trouvé également ceci dans les logs…

2025-05-16 19:31:23.911070790  [INFO] Preparing new go2rtc config...
2025-05-16 19:31:23.915549052  [INFO] Preparing Frigate...
2025-05-16 19:31:23.920118758  [INFO] Starting NGINX...
2025-05-16 19:31:23.952386668  [INFO] No TLS certificate found. Generating a self signed certificate...
2025-05-16 19:31:23.963496998  [INFO] Got IP address from supervisor: 192.168.1.164
2025-05-16 19:31:24.006575570  [INFO] Got WebRTC port from supervisor: 8555
2025-05-16 19:31:24.525698519  [INFO] Starting Frigate...
2025-05-16 19:31:25.646494341  [INFO] Starting go2rtc...
2025-05-16 19:31:25.824022543  21:31:25.817 INF go2rtc platform=linux/arm64 revision=b2399f3 version=1.9.2
2025-05-16 19:31:25.824028043  21:31:25.817 INF config path=/dev/shm/go2rtc.yaml
2025-05-16 19:31:25.824029543  21:31:25.818 INF [rtsp] listen addr=:8554
2025-05-16 19:31:25.824031284  21:31:25.818 INF [api] listen addr=:1984
2025-05-16 19:31:25.824032710  21:31:25.818 INF [webrtc] listen addr=:8555/tcp
s6-rc: info: service nginx successfully started
s6-rc: info: service certsync: starting
s6-rc: info: service certsync successfully started
s6-rc: info: service legacy-services: starting
2025-05-16 19:31:27.157258046  [INFO] Starting certsync...
s6-rc: info: service legacy-services successfully started
2025-05-16 19:31:27.231795098  2025/05/16 21:31:27 [error] 184#184: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 172.30.32.1, server: , request: "GET /api/stats HTTP/1.1", subrequest: "/auth", upstream: "http://127.0.0.1:5001/auth", host: "ccab4aaf-frigate:5000"
2025-05-16 19:31:27.231801747  2025/05/16 21:31:27 [error] 184#184: *1 auth request unexpected status: 502 while sending to client, client: 172.30.32.1, server: , request: "GET /api/stats HTTP/1.1", host: "ccab4aaf-frigate:5000"
2025-05-16 19:31:27.372583628  127.0.0.1 - - [16/May/2025:21:31:27 +0200] "" 400 0 "-" "-" "-"
2025-05-16 19:31:28.852533948  2025/05/16 21:31:28 [error] 187#187: *4 connect() failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: , request: "GET /api/version HTTP/1.1", subrequest: "/auth", upstream: "http://127.0.0.1:5001/auth", host: "127.0.0.1:5000"
2025-05-16 19:31:28.852558226  2025/05/16 21:31:28 [error] 187#187: *4 auth request unexpected status: 502 while sending to client, client: 127.0.0.1, server: , request: "GET /api/version HTTP/1.1", host: "127.0.0.1:5000"