Banana Studio
Guides · BS Manager

Utiliser toutes les fonctions de CamRelay dans Frigate NVR

Transformez un vieux téléphone Android en caméra pour Frigate NVR : CamRelay diffuse un flux RTSP avec le son, et go2rtc, intégré à Frigate, le reprend pour l'enregistrement, le direct avec le son et la communication bidirectionnelle. Pas à pas, avec un config.yml complet.

Utiliser toutes les fonctions de CamRelay dans Frigate NVR
On this page

Utiliser toutes les fonctions de CamRelay dans Frigate NVR

CamRelay intègre un téléphone Android à Frigate grâce à une seule URL RTSP. go2rtc, intégré à Frigate, récupère ce flux et le partage entre l'enregistreur, le direct et le canal de communication bidirectionnelle.

CamRelay est une application de Banana Studio qui transforme un téléphone en caméra IP sur votre réseau local. Elle diffuse de la vidéo H.264 ou H.265 avec un son Opus, G.711 ou AAC. Elle dispose d'une interface web, prend en charge ONVIF et reçoit le son renvoyé par les spectateurs via le backchannel RTSP.

Flux de données : téléphone sous CamRelay → go2rtc (dans Frigate) → enregistrement, direct avec le son, communication bidirectionnelle.

La configuration ci-dessous suit Frigate 0.16. Certaines clés peuvent changer dans les versions suivantes : consultez la documentation officielle de Frigate.

Les fonctions de CamRelay dans Frigate

Les quatre premières fonctions arrivent dans Frigate via go2rtc. Les autres se règlent dans l'application et assurent un flux continu 24 h/24, 7 j/7.

Fonction de CamRelay Utilisation dans Frigate Où la régler
Flux RTSP H.264/H.265, résolution et FPS de la caméra du téléphone Enregistrement, détection, direct go2rtc, étape 2.1
Son G.711 (PCMU/PCMA), Opus ou AAC Son dans le direct et les enregistrements Codec dans l'application, étape 2.2
Communication bidirectionnelle (backchannel RTSP) Bouton micro dans le direct WebRTC + HTTPS, étape 2.3
Incrustation de la date et l'heure, du nom de la caméra, de l'IP, de la batterie et de la température, des coordonnées GPS et de la vitesse Incrustées dans l'image enregistrée par Frigate Dans l'application, étape 1
Démarrage automatique, écran assombri, pause en cas de surchauffe ou de batterie faible Évite les coupures du flux Dans l'application, étape 1
Enregistrement MP4 sur le téléphone, gestion des fichiers dans le navigateur Enregistrements de secours en dehors de Frigate Dans l'application, étape 1
Interface web Vérifier l'image et le son, modifier les réglages sans arrêter le flux Étape 1

Avant de commencer

Il vous faut :

  • Un serveur Frigate installé et en marche (voir le guide d'installation de Frigate), sur le même réseau local que le téléphone.
  • Un téléphone Android avec CamRelay installé, branché en permanence et doté d'une adresse IP fixe sur votre routeur.
  • Sous Android 17 : autorisez l'accès au réseau local pour CamRelay (Android l'affiche sous Appareils à proximité). Sans cela, Frigate ne peut pas se connecter au téléphone. Voir l'article sur CamRelay 1.0.5.

Le conteneur Frigate doit exposer ces ports pour utiliser toutes les fonctions de CamRelay :

Port Utilisation
8971 Interface web HTTPS de Frigate, obligatoire pour la communication bidirectionnelle
8554 Rediffusion RTSP de go2rtc
8555 TCP et UDP WebRTC : direct avec le son et communication bidirectionnelle

Étape 1 : configurer CamRelay

CamRelay suit la langue du téléphone ; les noms des réglages ci-dessous sont ceux de la version française. Attention : ouvrir les Paramètres arrête le flux. Une fois CamRelay en marche, vous pouvez modifier les réglages depuis l'interface web sans l'arrêter.

1.1 Port RTSP

La section Ports serveur affiche le Port de diffusion RTSP (1935 par défaut) et le Port de l'interface web (8888 par défaut). Les valeurs par défaut conviennent.

Ports serveur dans les paramètres de CamRelay : port RTSP 1935 et port web 8888

1.2 Vidéo

  1. Sous Sélection de la caméra, choisissez la caméra à utiliser (la caméra arrière donne généralement une meilleure image).
  2. Ouvrez les réglages propres à cette caméra et choisissez la Résolution, la Fréquence d'images (FPS) et le Débit vidéo. Les résolutions et fréquences d'images disponibles dépendent de la caméra du téléphone.
  3. Sous Paramètres vidéo globaux → Codec vidéo, choisissez H.264 pour que les navigateurs puissent lire le direct.
  4. Laissez l'Intervalle d'images clés (GOP) sur 1s (valeur par défaut) pour que le direct s'ouvre rapidement.

Résolution, FPS et débit pour chaque caméra

Codec vidéo H.264 et intervalle d'images clés d'une seconde

Pour la surveillance, 1080p à 15 FPS suffit et ménage le serveur Frigate. Le H.265 économise de la bande passante, mais Frigate doit alors le transcoder pour le navigateur (voir l'étape 2.2).

1.3 Audio

Sous Paramètres audio, activez Activer l'audio. Le codec audio du flux se choisit sous Communication bidirectionnelle → Codec audio bidirectionnel. Ce seul réglage s'applique à la fois au son envoyé et à la communication bidirectionnelle :

  • G.711 ULAW : recommandé pour Frigate, lu directement en MSE comme en WebRTC (voir l'étape 2.2).
  • OPUS : valeur par défaut à partir d'Android 10, son plus clair, mais lu uniquement en WebRTC.
  • G.711 ALAW : seulement si l'appareil d'écoute exige l'A-law.
  • AAC : lecture uniquement ; la communication bidirectionnelle nécessite un transcodage.

Laissez le Mode audio bidirectionnel sur Communication vocale : il intègre l'annulation d'écho, ce qui évite le larsen pendant la communication bidirectionnelle.

Codec audio et mode de communication bidirectionnelle

1.4 Incrustations, enregistrement et fonctionnement 24 h/24

  • Superposition vidéo : affichez la date et l'heure, un nom de caméra (Nom de la caméra ; laissez-le vide pour utiliser le nom de l'appareil), l'adresse IP, la batterie et la température, les coordonnées GPS ou un compteur de vitesse. Les incrustations sont dessinées dans la vidéo elle-même : elles apparaissent donc aussi dans les enregistrements de Frigate. Elles sont toutes désactivées par défaut.
  • Paramètres d'enregistrement : activez Activer l'enregistrement pour garder une copie de secours sur le téléphone. Les fichiers MP4 sont enregistrés dans Movies/CamRelay et découpés selon la Durée de segment d'enregistrement (en minutes). Quand le Stockage maximal (Mo) est atteint, les fichiers les plus anciens sont supprimés.
  • Sécurité & Automatisation : activez Démarrage automatique au démarrage de l'appareil pour que CamRelay reprenne la diffusion après un redémarrage du téléphone. À partir d'Android 10, l'application a aussi besoin de l'autorisation de s'afficher par-dessus les autres applications. Sécurité thermique et Sécurité de la batterie mettent le flux en pause quand le téléphone chauffe trop ou que la batterie est faible, puis le relancent quand tout revient à la normale.
  • Optimisation de la batterie : vérifiez que l'optimisation de la batterie est désactivée pour CamRelay, afin qu'Android ne l'arrête pas en arrière-plan.

Options de superposition vidéo

Enregistrement MP4 sur le téléphone

Démarrage automatique et sécurité thermique

1.5 Lancer la diffusion et récupérer l'URL

Revenez à l'écran principal et appuyez sur le bouton de lecture. La barre du haut indique la résolution, les FPS, le débit et les codecs utilisés. Le coin inférieur affiche trois adresses, chacune avec un bouton de copie :

  • rtsp://<phone-ip>:1935/ : l'URL RTSP pour Frigate.
  • http://<phone-ip>:8888 : l'interface web de CamRelay.
  • http://<phone-ip>:8889/onvif/device_service : le service ONVIF.

CamRelay en diffusion : adresses RTSP, web et ONVIF en bas de l'écran

Pour une caméra qui reste au même endroit, appuyez sur l'icône lune (Assombrir l'écran) pour éteindre l'affichage. Cela économise de l'énergie et évite le marquage des écrans OLED. Appuyez deux fois pour le rallumer.

Les exemples ci-dessous utilisent rtsp://192.168.1.50:1935/ ; remplacez-la par l'URL affichée par CamRelay. La version actuelle de CamRelay ne demande pas encore d'identifiants en RTSP : utilisez-la uniquement sur un réseau de confiance.

Bientôt : la prochaine mise à jour de CamRelay permettra de définir un nom d'utilisateur et un mot de passe pour protéger le flux RTSP. Il suffira alors de les ajouter à l'URL dans go2rtc, par exemple rtsp://user:[email protected]:1935/.

Vous pouvez vérifier le flux depuis le serveur Frigate avec ffprobe :

ffprobe -rtsp_transport tcp rtsp://192.168.1.50:1935/

La sortie doit indiquer un flux vidéo h264 et un flux audio (pcm_mulaw avec G.711 ULAW, opus avec OPUS).

Étape 2 : configurer go2rtc dans Frigate

go2rtc, dans Frigate, est le seul à se connecter au téléphone. Il récupère une seule fois le flux RTSP de CamRelay et le partage entre l'enregistrement, la détection, le direct (MSE, WebRTC) et la communication bidirectionnelle. Frigate lui-même lit rtsp://127.0.0.1:8554/camrelay : le téléphone n'a donc jamais à servir plusieurs connexions à la fois. Il chauffe moins et la batterie est préservée.

2.1 Ajouter le flux

Ajoutez un bloc go2rtc à ~/frigate/config/config.yml :

go2rtc:
  streams:
    camrelay:                              # même nom que la caméra Frigate
      - rtsp://192.168.1.50:1935/          # l'URL affichée par CamRelay
  webrtc:
    candidates:
      - 192.168.1.100:8555   # IP du serveur Frigate
      - stun:8555
  • Une seule ligne RTSP suffit. Avec un son G.711 ou Opus, go2rtc transmet la vidéo et le son directement au navigateur, sans transcodage ffmpeg:. Cette même ligne RTSP porte aussi le canal de communication bidirectionnelle.
  • webrtc.candidates est obligatoire avec Docker classique ; sans cela, WebRTC et le micro ne fonctionnent pas sur le réseau local. Les ports 8555 TCP/UDP ont été ouverts dans « Avant de commencer ».
  • Quand le flux porte le même nom que la caméra, Frigate l'utilise automatiquement pour le direct. Sinon, définissez live.streams pour la caméra.

2.2 Codecs et audio

Réglez CamRelay sur la vidéo H.264. Le G.711 est le choix audio le plus simple. D'après la documentation de Frigate, le MSE (le direct par défaut) lit l'AAC ou le PCMA/PCMU, et le WebRTC (utilisé pour la communication bidirectionnelle) lit l'Opus ou le PCMA/PCMU. Seul le G.711 fonctionne directement dans les deux.

Audio de CamRelay MSE WebRTC Ligne go2rtc supplémentaire
G.711 ULAW / ALAW (PCMU/PCMA) Oui Oui Aucune
OPUS Non Oui ffmpeg:camrelay#audio=aac pour l'entendre en MSE
AAC Oui Non ffmpeg:camrelay#audio=opus pour le WebRTC

L'Opus offre un son plus clair que le G.711 (qualité téléphonique à 8 kHz) si vous regardez surtout en WebRTC. Si vous devez utiliser le H.265, ajoutez une ligne de transcodage vidéo et conservez la ligne RTSP :

go2rtc:
  streams:
    camrelay:
      - rtsp://192.168.1.50:1935/
      - "ffmpeg:camrelay#video=h264#hardware"   # copie H.264 pour les navigateurs

2.3 Communication bidirectionnelle

Pendant la diffusion, CamRelay est toujours prêt à recevoir du son via le backchannel RTSP ; il n'y a aucun interrupteur à activer. go2rtc ouvre ce canal à partir de la ligne RTSP de l'étape 2.1, sans configuration supplémentaire.

Pour parler, ouvrez Frigate en HTTPS sur le port 8971, allez dans le direct de la caméra et appuyez sur le micro ; Frigate passe tout seul en WebRTC. Votre voix sort du haut-parleur du téléphone, au volume défini par Volume de lecture dans CamRelay.

Si une autre application doit aussi parler directement au téléphone, ajoutez #backchannel=0 à la fin de l'URL RTSP pour que go2rtc ne monopolise pas le canal.

2.4 Ajouter la caméra à Frigate

Ajoutez un bloc cameras sous le bloc go2rtc. La caméra relit le flux depuis go2rtc au lieu de se connecter au téléphone :

cameras:
  camrelay:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/camrelay   # le flux go2rtc de l'étape 2.1
          input_args: preset-rtsp-restream
          roles:
            - record
            - detect   # exigé par Frigate, rien d'autre à configurer
    record:
      enabled: true

CamRelay envoie un seul flux (il n'y a pas de sous-flux) : la caméra l'utilise donc à la fois pour l'enregistrement et la détection.

Redémarrez et vérifiez :

docker compose restart frigate
docker logs -f frigate

Pour vérifier go2rtc seul, ajoutez temporairement le port 1984:1984 à docker-compose et ouvrez http://<server-ip>:1984. Le flux camrelay doit avoir une source RTSP avec une vidéo H264 et un son PCMU/PCMA ou OPUS. Quand CamRelay apparaît sur la page d'accueil de Frigate, c'est terminé.

Étape 3 : config.yml complet

Le fichier ci-dessous contient uniquement ce dont CamRelay a besoin : le flux go2rtc, WebRTC, la connexion (pour le HTTPS, nécessaire à la communication bidirectionnelle) et l'enregistrement avec le son.

go2rtc:
  streams:
    camrelay:
      - rtsp://192.168.1.50:1935/   # l'URL affichée par CamRelay, H.264 + G.711 ULAW
  webrtc:
    candidates:
      - 192.168.1.100:8555   # IP du serveur Frigate
      - stun:8555

auth:
  enabled: true

cameras:
  camrelay:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/camrelay
          input_args: preset-rtsp-restream
          roles: [record, detect]   # detect : exigé par Frigate
    record:
      enabled: true
    live:
      streams:
        CamRelay: camrelay

version: 0.16-0

Dépannage

La plupart des problèmes rencontrés en ajoutant CamRelay à Frigate viennent de l'URL du flux, des codecs ou du réseau.

Symptôme Cause fréquente Solution
La caméra affiche « No frames received » Mauvaise URL ou mauvais port, CamRelay ne diffuse pas, ou Android l'a arrêté en arrière-plan Recopiez l'URL depuis l'écran principal de CamRelay ; vérifiez-la avec ffprobe ; ouvrez http://<ip>:1984 (si exposé) pour voir si go2rtc reçoit le flux
Connexion impossible, même sur le même Wi-Fi Téléphone sous Android 17 sans accès au réseau local ; « isolation des clients » sur le routeur ; réseau invité ; VPN Autorisez Appareils à proximité pour CamRelay ; désactivez l'isolation des clients/AP ; placez le serveur et le téléphone sur le même réseau principal
Image saccadée ou déchirée Paquets UDP perdus Ajoutez #transport=tcp à l'URL dans go2rtc
Le direct ne se lit pas dans le navigateur Flux H.265 ou candidats WebRTC manquants Choisissez H.264 dans CamRelay, ou transcodez avec ffmpeg:...#video=h264 ; définissez webrtc.candidates
La connexion coupe de temps en temps Wi-Fi instable, optimisation de la batterie d'Android, surchauffe du téléphone Utilisez une IP fixe, laissez le téléphone en charge, désactivez l'optimisation de la batterie pour CamRelay, activez Démarrage automatique au démarrage de l'appareil, utilisez le bouton d'écran assombri ; surveillez la température en haut de l'écran de CamRelay ; consultez les journaux de Frigate sous Settings → System → Logs
Pas de son dans le direct Activer l'audio est désactivé, ou lecture en MSE alors que CamRelay envoie de l'OPUS Activez l'audio dans CamRelay ; choisissez G.711 ULAW pour avoir le son en MSE comme en WebRTC
Le micro ne fonctionne pas Frigate ouvert en HTTP au lieu de HTTPS, ou port 8555 manquant Ouvrez Frigate sur https://<ip>:8971 ; exposez le port 8555 TCP/UDP et définissez webrtc.candidates

Pour demander de l'aide dans les GitHub Discussions de Frigate, joignez votre fichier de configuration, le journal de démarrage et la sortie de ffprobe pour le flux CamRelay. Pour toute question sur CamRelay, appuyez sur Commentaires dans l'écran À propos de l'application.

Télécharger CamRelay sur Google Play

Retrouvez d'autres actualités, guides et applications de Banana Studio sur xnano.net.


Sources : documentation Live View de Frigate pour go2rtc ; le guide de l'utilisateur de CamRelay et la fiche Google Play pour CamRelay.

Related app

CamRelay - Caméra IP en direct via RTSP

Transformez votre téléphone Android en une puissante caméra réseau RTSP.

Related posts