Banana Studio
Guides · BS Manager

Använd alla CamRelay-funktioner i Frigate NVR

Gör en extra Android-mobil till en kamera för Frigate NVR: CamRelay strömmar RTSP med ljud, och go2rtc som är inbyggt i Frigate tar emot strömmen för inspelning, livevisning med ljud och tvåvägssamtal. Steg för steg, med en komplett config.yml.

Använd alla CamRelay-funktioner i Frigate NVR
On this page

Använd alla CamRelay-funktioner i Frigate NVR

CamRelay ansluter en Android-mobil till Frigate via en enda RTSP-URL. go2rtc, som är inbyggt i Frigate, tar emot strömmen och delar den med inspelningen, livevisningen och kanalen för tvåvägssamtal.

CamRelay är en app från Banana Studio som gör en mobil till en IP-kamera i ditt lokala nätverk. Appen strömmar H.264- eller H.265-video med Opus-, G.711- eller AAC-ljud, har ett webbgränssnitt, stöder ONVIF och tar emot ljud från tittarna via RTSP-backchannel.

Dataflöde: mobil med CamRelay → go2rtc (i Frigate) → inspelning, livevisning med ljud, tvåvägssamtal.

Konfigurationen nedan följer Frigate 0.16. Vissa nycklar kan ändras i senare versioner, så kontrollera den officiella Frigate-dokumentationen.

CamRelay-funktioner i Frigate

De fyra första funktionerna når Frigate via go2rtc. Resten ställer du in i appen, och de håller strömmen igång dygnet runt.

CamRelay-funktion Användning i Frigate Var den ställs in
H.264/H.265-RTSP-ström, upplösning och FPS från mobilens kamera Inspelning, detektering, livevisning go2rtc, steg 2.1
G.711- (PCMU/PCMA), Opus- eller AAC-ljud Ljud i livevisning och inspelningar Kodek i appen, steg 2.2
Tvåvägssamtal (RTSP-backchannel) Mikrofonknapp i livevisningen WebRTC + HTTPS, steg 2.3
Överlägg för datum och tid, kameranamn, IP, batteri och temperatur, GPS-koordinater och hastighet Inbränt i bilden som Frigate spelar in I appen, steg 1
Automatisk start vid uppstart, dämpad skärm, paus vid överhettning eller låg batterinivå Hindrar strömmen från att avbrytas I appen, steg 1
MP4-inspelning på mobilen, filhantering i webbläsaren Reservinspelningar utanför Frigate I appen, steg 1
Webbgränssnitt Kontrollera bild och ljud, ändra inställningar utan att stoppa strömmen Steg 1

Innan du börjar

Du behöver:

  • En installerad Frigate-server som är igång (se Frigates installationsguide), i samma lokala nätverk som mobilen.
  • En Android-mobil med CamRelay installerat, permanent ansluten till laddaren och med en fast IP-adress i routern.
  • På Android 17: ge CamRelay åtkomst till lokalt nätverk (Android visar den som Enheter i närheten). Utan den kan Frigate inte ansluta till mobilen. Läs artikeln om CamRelay 1.0.5.

Frigate-containern måste exponera dessa portar för att du ska kunna använda alla CamRelay-funktioner:

Port Används för
8971 Frigates HTTPS-webbgränssnitt, krävs för tvåvägssamtal
8554 go2rtc:s RTSP-restream
8555 TCP och UDP WebRTC: livevisning med ljud och tvåvägssamtal

Steg 1: Ställ in CamRelay

CamRelay följer mobilens språk; inställningarnas namn nedan är de svenska. Obs! När du öppnar Inställningar stoppas strömmen. När CamRelay väl är igång kan du ändra inställningar via webbgränssnittet utan att stoppa strömmen.

1.1 RTSP-port

Avsnittet Serverportar visar RTSP-strömningsport (standard 1935) och Webbgränssnittsport (standard 8888). Standardvärdena fungerar bra.

Serverportar i CamRelays inställningar: RTSP-port 1935 och webbport 8888

1.2 Video

  1. Välj kamera under Kameraval (den bakre kameran ger oftast bättre bild).
  2. Öppna kamerans egna inställningar och välj Upplösning, Bildfrekvens (FPS) och Videobitrat. Vilka upplösningar och bildfrekvenser som finns beror på mobilens kamera.
  3. Under Globala videoinställningar → Videokodek väljer du H.264 så att webbläsare kan spela upp livevisningen.
  4. Låt Nyckelbildsintervall (GOP) stå kvar på 1s (standard) så att livevisningen öppnas snabbt.

Upplösning, FPS och bitrat för varje kamera

Videokodek H.264 och ett nyckelbildsintervall på 1 sekund

För övervakning räcker 1080p i 15 FPS, och det belastar inte Frigate-servern i onödan. H.265 sparar bandbredd, men Frigate måste då omkoda det för webbläsaren (se steg 2.2).

1.3 Ljud

Under Ljudinställningar slår du på Aktivera ljud. Strömmens ljudkodek väljs under Tvåvägssamtal → Ljudkodek för tvåvägssamtal. Den här enda inställningen gäller både det utgående ljudet och tvåvägssamtal:

  • G.711 ULAW: rekommenderas för Frigate, spelas direkt i både MSE och WebRTC (se steg 2.2).
  • OPUS: standard från Android 10, tydligare ljud, men spelas bara via WebRTC.
  • G.711 ALAW: bara om den lyssnande enheten kräver A-law.
  • AAC: bara för uppspelning; tvåvägssamtal kräver omkodning.

Låt Ljudläge för tvåvägssamtal stå kvar på Röstkommunikation: det har ekoreducering, så tvåvägssamtal inte ger rundgång.

Ljudkodek och läge för tvåvägssamtal

1.4 Överlägg, inspelning och drift dygnet runt

  • Video-överlägg: visa datum och tid, ett kameranamn (Kameranamn; lämna tomt för att använda enhetens namn), IP-adressen, batteri och temperatur, GPS-koordinater eller en hastighetsmätare. Överläggen ritas in i själva videon och syns därför också i Frigates inspelningar. Alla är avstängda som standard.
  • Inspelningsinställningar: slå på Aktivera inspelning för en reservkopia på mobilen. MP4-filer sparas i Movies/CamRelay, uppdelade enligt Inspelningssegmentets varaktighet (minuter). När Max lagring (MB) är nådd raderas de äldsta filerna.
  • Säkerhet & automatisering: slå på Automatisk start vid enhetsstart så att CamRelay börjar strömma igen efter att mobilen har startats om. På Android 10 och senare behöver appen också behörighet att visas ovanpå andra appar. Temperatursäkerhet och Batterisäkerhet pausar strömmen när mobilen blir för varm eller batteriet börjar ta slut, och återupptar den när allt är normalt igen.
  • Batterioptimering: se till att batterioptimering är avstängd för CamRelay, så att Android inte stoppar appen i bakgrunden.

Alternativ för video-överlägg

MP4-inspelning på mobilen

Automatisk start vid uppstart och temperatursäkerhet

1.5 Starta strömningen och hämta URL:en

Gå tillbaka till huvudskärmen och tryck på uppspelningsknappen. Fältet högst upp visar upplösning, FPS, bitrat och vilka kodekar som används. I det nedre hörnet visas tre adresser, var och en med en kopieringsknapp:

  • rtsp://<phone-ip>:1935/: RTSP-URL:en för Frigate.
  • http://<phone-ip>:8888: CamRelays webbgränssnitt.
  • http://<phone-ip>:8889/onvif/device_service: ONVIF-tjänsten.

CamRelay strömmar: RTSP-, webb- och ONVIF-adresser längst ned

För en kamera som står på samma plats trycker du på mån-ikonen (Dämpa skärmen) för att göra skärmen svart. Det sparar ström och förhindrar inbränning på OLED-skärmar. Dubbeltryck för att väcka den.

Exemplen nedan använder rtsp://192.168.1.50:1935/; ersätt den med URL:en som CamRelay visar. Den nuvarande versionen av CamRelay kräver ännu ingen inloggning för RTSP, så använd den bara i ett nätverk du litar på.

Kommer snart: i nästa CamRelay-uppdatering kan du ange ett användarnamn och lösenord för att skydda RTSP-strömmen. Då behöver du bara lägga till dem i URL:en i go2rtc, till exempel rtsp://user:[email protected]:1935/.

Du kan kontrollera strömmen från Frigate-servern med ffprobe:

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

Utdata ska visa en h264-videoström och en ljudström (pcm_mulaw med G.711 ULAW, opus med OPUS).

Steg 2: Konfigurera go2rtc i Frigate

go2rtc i Frigate är det enda som ansluter till mobilen. Det hämtar CamRelays RTSP-ström en gång och delar den med inspelning, detektering, livevisning (MSE, WebRTC) och tvåvägssamtal. Frigate själv läser från rtsp://127.0.0.1:8554/camrelay, så mobilen behöver aldrig hantera flera anslutningar samtidigt. Det håller den svalare och sparar batteri.

2.1 Lägg till strömmen

Lägg till ett go2rtc-block i ~/frigate/config/config.yml:

go2rtc:
  streams:
    camrelay:                              # samma namn som Frigate-kameran
      - rtsp://192.168.1.50:1935/          # URL:en som CamRelay visar
  webrtc:
    candidates:
      - 192.168.1.100:8555   # Frigate-serverns IP
      - stun:8555
  • En RTSP-rad räcker. Med G.711- eller Opus-ljud skickar go2rtc video och ljud direkt till webbläsaren, utan ffmpeg:-omkodning. Samma RTSP-rad bär också kanalen för tvåvägssamtal.
  • webrtc.candidates krävs med vanlig Docker; utan den fungerar inte WebRTC och mikrofonen i det lokala nätverket. Portarna 8555 TCP/UDP öppnades under "Innan du börjar".
  • När strömmen har samma namn som kameran använder Frigate den automatiskt för livevisning. Annars anger du live.streams för kameran.

2.2 Kodekar och ljud

Ställ in CamRelay på H.264-video. G.711 är det enklaste ljudvalet. Enligt Frigate-dokumentationen spelar MSE (standardläget för livevisning) upp AAC eller PCMA/PCMU, och WebRTC (som används för tvåvägssamtal) spelar upp Opus eller PCMA/PCMU. Bara G.711 fungerar direkt i båda.

CamRelay-ljud MSE WebRTC Extra go2rtc-rad
G.711 ULAW / ALAW (PCMU/PCMA) Ja Ja Ingen
OPUS Nej Ja ffmpeg:camrelay#audio=aac för att höra det i MSE
AAC Ja Nej ffmpeg:camrelay#audio=opus för WebRTC

Opus låter tydligare än G.711 (8 kHz, telefonkvalitet) om du mest tittar via WebRTC. Om du måste använda H.265 lägger du till en rad för videoomkodning och behåller RTSP-raden:

go2rtc:
  streams:
    camrelay:
      - rtsp://192.168.1.50:1935/
      - "ffmpeg:camrelay#video=h264#hardware"   # H.264-kopia för webbläsare

2.3 Tvåvägssamtal

Under strömning är CamRelay alltid redo att ta emot ljud via RTSP-backchannel; det finns ingen brytare att slå på. go2rtc öppnar kanalen från RTSP-raden i 2.1, utan extra konfiguration.

För att prata öppnar du Frigate via HTTPS på port 8971, går till kamerans livevisning och trycker på mikrofonen; Frigate växlar själv till WebRTC. Din röst spelas upp i mobilens högtalare, med den volym som är inställd under Uppspelningsvolym i CamRelay.

Om en annan app också behöver prata direkt med mobilen lägger du till #backchannel=0 i slutet av RTSP-URL:en, så att go2rtc inte håller kanalen.

2.4 Lägg till kameran i Frigate

Lägg till ett cameras-block under go2rtc-blocket. Kameran läser strömmen från go2rtc i stället för att ansluta till mobilen:

cameras:
  camrelay:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/camrelay   # go2rtc-strömmen från 2.1
          input_args: preset-rtsp-restream
          roles:
            - record
            - detect   # krävs av Frigate, inget mer att konfigurera
    record:
      enabled: true

CamRelay skickar en enda ström (det finns ingen underström), så kameran använder den för både inspelning och detektering.

Starta om och kontrollera:

docker compose restart frigate
docker logs -f frigate

För att kontrollera go2rtc separat lägger du tillfälligt till porten 1984:1984 i docker-compose och öppnar http://<server-ip>:1984. Strömmen camrelay ska ha en RTSP-källa med H264-video och PCMU/PCMA- eller OPUS-ljud. När CamRelay syns på Frigates startsida är du klar.

Steg 3: Komplett config.yml

Filen nedan innehåller bara det som CamRelay behöver: go2rtc-strömmen, WebRTC, inloggning (för HTTPS, som krävs för tvåvägssamtal) och inspelning med ljud.

go2rtc:
  streams:
    camrelay:
      - rtsp://192.168.1.50:1935/   # URL:en som CamRelay visar, H.264 + G.711 ULAW
  webrtc:
    candidates:
      - 192.168.1.100:8555   # Frigate-serverns IP
      - 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: krävs av Frigate
    record:
      enabled: true
    live:
      streams:
        CamRelay: camrelay

version: 0.16-0

Felsökning

De flesta problem när du lägger till CamRelay i Frigate handlar om ström-URL:en, kodekarna eller nätverket.

Symptom Vanlig orsak Lösning
Kameran visar "No frames received" Fel URL eller port, CamRelay strömmar inte, eller Android har stoppat appen i bakgrunden Kopiera URL:en igen från CamRelays huvudskärm; kontrollera med ffprobe; öppna http://<ip>:1984 (om porten är exponerad) för att se om go2rtc tar emot strömmen
Kan inte ansluta, trots samma wifi Android 17-mobil utan åtkomst till lokalt nätverk; "client isolation" i routern; gästnätverk; VPN Tillåt Enheter i närheten för CamRelay; stäng av klient-/AP-isolering; lägg servern och mobilen i samma huvudnätverk
Hackig eller trasig bild Förlorade UDP-paket Lägg till #transport=tcp i URL:en i go2rtc
Livevisningen spelas inte upp i webbläsaren H.265-ström eller saknade WebRTC-candidates Välj H.264 i CamRelay, eller omkoda med ffmpeg:...#video=h264; ange webrtc.candidates
Anslutningen bryts då och då Instabilt wifi, Androids batterioptimering, överhettad mobil Använd en fast IP, låt mobilen ladda, stäng av batterioptimering för CamRelay, slå på Automatisk start vid enhetsstart, använd knappen för att dämpa skärmen; håll koll på temperaturen högst upp på CamRelays skärm; kontrollera Frigates loggar under Settings → System → Logs
Inget ljud i livevisningen Aktivera ljud är avstängt, eller du tittar i MSE medan CamRelay skickar OPUS Slå på ljud i CamRelay; välj G.711 ULAW för att höra ljud i både MSE och WebRTC
Mikrofonen fungerar inte Frigate öppnat via HTTP i stället för HTTPS, eller port 8555 saknas Öppna Frigate på https://<ip>:8971; exponera port 8555 TCP/UDP och ange webrtc.candidates

När du ber om hjälp i Frigates GitHub Discussions, bifoga din konfigurationsfil, startloggen och ffprobe-utdata för CamRelay-strömmen. Har du frågor om CamRelay trycker du på Feedback på appens Om-skärm.

Hämta CamRelay på Google Play

Fler nyheter, guider och appar från Banana Studio hittar du på xnano.net.


Källor: Frigates dokumentation om Live View för go2rtc; CamRelays användarguide och sidan på Google Play för CamRelay.

Related app

CamRelay - Live-IP-kamera via RTSP

Förvandla din Android-telefon till en kraftfull RTSP-nätverkskamera.

Related posts