Banana Studio
Guides · BS Manager

Usando todos os recursos do CamRelay no Frigate NVR

Transforme um celular Android sobrando em uma câmera para o Frigate NVR: o CamRelay transmite RTSP com áudio, e o go2rtc integrado ao Frigate recebe o sinal para gravação, visualização ao vivo com som e áudio bidirecional. Passo a passo, com um config.yml completo.

Usando todos os recursos do CamRelay no Frigate NVR
On this page

Usando todos os recursos do CamRelay no Frigate NVR

O CamRelay leva um celular Android para o Frigate por meio de uma única URL RTSP. O go2rtc, que já vem integrado ao Frigate, recebe essa transmissão e a compartilha com o gravador, a visualização ao vivo e o canal de áudio bidirecional.

O CamRelay é um app da Banana Studio que transforma o celular em uma câmera IP na sua rede local. Ele transmite vídeo H.264 ou H.265 com áudio Opus, G.711 ou AAC. Tem interface web, é compatível com ONVIF e recebe áudio de volta de quem está assistindo pelo backchannel RTSP.

Fluxo de dados: celular com o CamRelay → go2rtc (dentro do Frigate) → gravação, visualização ao vivo com som, áudio bidirecional.

A configuração abaixo segue o Frigate 0.16. Algumas chaves podem mudar em versões posteriores, então confira a documentação oficial do Frigate.

Recursos do CamRelay no Frigate

Os quatro primeiros recursos chegam ao Frigate pelo go2rtc. Os demais são configurados no app e mantêm a transmissão funcionando 24 horas por dia, 7 dias por semana.

Recurso do CamRelay Uso no Frigate Onde configurar
Transmissão RTSP H.264/H.265, resolução e FPS da câmera do celular Gravação, detecção, visualização ao vivo go2rtc, passo 2.1
Áudio G.711 (PCMU/PCMA), Opus ou AAC Som na visualização ao vivo e nas gravações Codec no app, passo 2.2
Áudio bidirecional (backchannel RTSP) Botão de microfone na visualização ao vivo WebRTC + HTTPS, passo 2.3
Overlays de data e hora, nome da câmera, IP, bateria e temperatura, coordenadas GPS e velocidade Gravados na imagem que o Frigate registra No app, passo 1
Início automático ao ligar, tela escurecida, pausa por superaquecimento ou bateria fraca Evita que a transmissão caia No app, passo 1
Gravação MP4 no celular, gerenciamento de arquivos pelo navegador Gravações de backup fora do Frigate No app, passo 1
Interface web Conferir imagem e som, mudar configurações sem parar a transmissão Passo 1

Antes de começar

Você vai precisar de:

  • Um servidor Frigate instalado e funcionando (veja o guia de instalação do Frigate), na mesma rede local que o celular.
  • Um celular Android com o CamRelay instalado, ligado na tomada o tempo todo e com IP fixo configurado no roteador.
  • No Android 17: permita ao CamRelay o acesso à rede local (o Android mostra essa permissão como Dispositivos por perto). Sem ela, o Frigate não consegue se conectar ao celular. Veja o artigo sobre o CamRelay 1.0.5.

O contêiner do Frigate precisa expor estas portas para usar todos os recursos do CamRelay:

Porta Usada para
8971 Interface web HTTPS do Frigate, necessária para o áudio bidirecional
8554 Retransmissão RTSP do go2rtc
8555 TCP e UDP WebRTC: visualização ao vivo com som e áudio bidirecional

Passo 1: Configure o CamRelay

O CamRelay segue o idioma do celular; os nomes das configurações abaixo são os em português do Brasil. Atenção: abrir as Configurações interrompe a transmissão. Com o CamRelay já transmitindo, você pode mudar as configurações pela interface web sem parar a transmissão.

1.1 Porta RTSP

A seção Portas do Servidor mostra a Porta de Transmissão RTSP (padrão 1935) e a Porta da Interface Web (padrão 8888). Os valores padrão funcionam bem.

Portas do Servidor nas configurações do CamRelay: porta RTSP 1935 e porta web 8888

1.2 Vídeo

  1. Em Seleção de Câmera, escolha a câmera que será usada (a câmera traseira costuma ter imagem melhor).
  2. Abra as configurações dessa câmera e escolha Resolução, Taxa de Quadros (FPS) e Bitrate de Vídeo. As resoluções e taxas de quadros disponíveis dependem da câmera do celular.
  3. Em Configurações Globais de Vídeo → Codec de Vídeo, escolha H.264 para que os navegadores consigam reproduzir a visualização ao vivo.
  4. Deixe o Intervalo de Key-frames (GOP) em 1s (o padrão) para que a visualização ao vivo abra rápido.

Resolução, FPS e bitrate de cada câmera

Codec de vídeo H.264 e intervalo de key-frames de 1 segundo

Para vigilância, 1080p a 15 FPS é suficiente e não pesa no servidor do Frigate. O H.265 economiza banda, mas o Frigate precisa transcodificá-lo para o navegador (veja o passo 2.2).

1.3 Áudio

Em Configurações de Áudio, ative Habilitar Áudio. O codec de áudio da transmissão é escolhido em Áudio Bidirecional → Codec de Áudio Bidirecional. Essa única configuração vale tanto para o som enviado quanto para o áudio bidirecional:

  • G.711 ULAW: recomendado para o Frigate, reproduz diretamente tanto em MSE quanto em WebRTC (veja o passo 2.2).
  • OPUS: o padrão a partir do Android 10, som mais limpo, mas só reproduz via WebRTC.
  • G.711 ALAW: só se o dispositivo que recebe o áudio exigir A-law.
  • AAC: apenas reprodução; o áudio bidirecional precisa de transcodificação.

Deixe o Modo de Áudio Bidirecional em Comunicação de Voz: ele tem cancelamento de eco, então o áudio bidirecional não gera microfonia.

Codec de áudio e modo de áudio bidirecional

1.4 Overlays, gravação e funcionamento 24/7

  • Overlay de Vídeo: mostre a data e hora, um nome de câmera (Nome da Câmera; deixe em branco para usar o nome do aparelho), o endereço IP, bateria e temperatura, coordenadas GPS ou um velocímetro. Os overlays são desenhados no próprio vídeo, então também aparecem nas gravações do Frigate. Todos vêm desativados por padrão.
  • Configurações de Gravação: ative Habilitar Gravação para ter uma cópia de backup no celular. Os arquivos MP4 vão para Movies/CamRelay, divididos conforme a Duração do Segmento de Gravação (em minutos). Quando o Armazenamento Máximo (MB) é atingido, os arquivos mais antigos são apagados.
  • Segurança & Automação: ative Início automático ao ligar o Dispositivo para que o CamRelay volte a transmitir depois que o celular reiniciar. No Android 10 e posteriores, o app também precisa da permissão para sobrepor outros apps. Proteção de Temperatura e Proteção de Bateria pausam a transmissão quando o celular esquenta demais ou a bateria fica fraca, e a retomam quando tudo volta ao normal.
  • Otimização de Bateria: confira se a otimização de bateria está desativada para o CamRelay, para que o Android não o encerre em segundo plano.

Opções de overlay de vídeo

Gravação MP4 no celular

Início automático ao ligar e proteção de temperatura

1.5 Inicie a transmissão e copie a URL

Volte à tela principal e toque no botão de play. A barra no topo mostra a resolução, o FPS, o bitrate e os codecs em uso. No canto inferior aparecem três endereços, cada um com um botão de copiar:

  • rtsp://<phone-ip>:1935/: a URL RTSP para o Frigate.
  • http://<phone-ip>:8888: a interface web do CamRelay.
  • http://<phone-ip>:8889/onvif/device_service: o serviço ONVIF.

CamRelay transmitindo: endereços RTSP, web e ONVIF na parte de baixo

Para uma câmera que fica sempre no mesmo lugar, toque no ícone de lua (Escurecer Tela) para apagar a tela. Isso economiza energia e evita marcas permanentes em telas OLED. Toque duas vezes para acender de novo.

Os exemplos abaixo usam rtsp://192.168.1.50:1935/; troque pela URL que o CamRelay mostrar. A versão atual do CamRelay ainda não pede login no RTSP, então use-o apenas em uma rede de confiança.

Em breve: a próxima atualização do CamRelay permite definir um usuário e uma senha para proteger a transmissão RTSP. Aí basta incluí-los na URL do go2rtc, por exemplo rtsp://user:[email protected]:1935/.

Você pode testar a transmissão a partir do servidor do Frigate com o ffprobe:

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

A saída deve listar uma faixa de vídeo h264 e uma faixa de áudio (pcm_mulaw com G.711 ULAW, opus com OPUS).

Passo 2: Configure o go2rtc no Frigate

O go2rtc dentro do Frigate é o único que se conecta ao celular. Ele puxa a transmissão RTSP do CamRelay uma única vez e a compartilha com a gravação, a detecção, a visualização ao vivo (MSE, WebRTC) e o áudio bidirecional. O próprio Frigate lê de rtsp://127.0.0.1:8554/camrelay, então o celular nunca precisa atender várias conexões ao mesmo tempo. Assim ele esquenta menos e economiza bateria.

2.1 Adicione a transmissão

Adicione um bloco go2rtc ao ~/frigate/config/config.yml:

go2rtc:
  streams:
    camrelay:                              # mesmo nome da câmera no Frigate
      - rtsp://192.168.1.50:1935/          # a URL que o CamRelay mostra
  webrtc:
    candidates:
      - 192.168.1.100:8555   # IP do servidor Frigate
      - stun:8555
  • Uma linha RTSP basta. Com áudio G.711 ou Opus, o go2rtc repassa vídeo e som direto para o navegador, sem transcodificação ffmpeg:. A mesma linha RTSP também carrega o canal de áudio bidirecional.
  • webrtc.candidates é obrigatório ao usar Docker puro; sem ele, o WebRTC e o microfone não funcionam na rede local. As portas 8555 TCP/UDP foram abertas em "Antes de começar".
  • Quando a transmissão tem o mesmo nome da câmera, o Frigate a usa automaticamente na visualização ao vivo. Caso contrário, defina live.streams para a câmera.

2.2 Codecs e áudio

Configure o CamRelay com vídeo H.264. O G.711 é a opção de áudio mais simples. Segundo a documentação do Frigate, o MSE (a visualização ao vivo padrão) reproduz AAC ou PCMA/PCMU, e o WebRTC (usado no áudio bidirecional) reproduz Opus ou PCMA/PCMU. Só o G.711 funciona diretamente nos dois.

Áudio do CamRelay MSE WebRTC Linha extra no go2rtc
G.711 ULAW / ALAW (PCMU/PCMA) Sim Sim Nenhuma
OPUS Não Sim ffmpeg:camrelay#audio=aac para ouvir no MSE
AAC Sim Não ffmpeg:camrelay#audio=opus para o WebRTC

O Opus soa mais limpo que o G.711 (qualidade de telefone, 8 kHz) se você assiste principalmente via WebRTC. Se precisar usar H.265, adicione uma linha de transcodificação de vídeo e mantenha a linha RTSP:

go2rtc:
  streams:
    camrelay:
      - rtsp://192.168.1.50:1935/
      - "ffmpeg:camrelay#video=h264#hardware"   # cópia H.264 para os navegadores

2.3 Áudio bidirecional

Enquanto transmite, o CamRelay está sempre pronto para receber áudio pelo backchannel RTSP; não há nenhuma opção para ativar. O go2rtc abre esse canal a partir da linha RTSP do passo 2.1, sem configuração extra.

Para falar, abra o Frigate via HTTPS na porta 8971, vá até a visualização ao vivo da câmera e toque no microfone; o Frigate muda para WebRTC sozinho. Sua voz sai pelo alto-falante do celular, no volume definido em Volume de Reprodução no CamRelay.

Se outro app também precisar falar diretamente com o celular, adicione #backchannel=0 ao final da URL RTSP para que o go2rtc não fique segurando o canal.

2.4 Adicione a câmera ao Frigate

Adicione um bloco cameras abaixo do bloco go2rtc. A câmera lê a transmissão de volta do go2rtc em vez de se conectar ao celular:

cameras:
  camrelay:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/camrelay   # a transmissão do go2rtc do passo 2.1
          input_args: preset-rtsp-restream
          roles:
            - record
            - detect   # exigido pelo Frigate, nada mais a configurar
    record:
      enabled: true

O CamRelay envia uma única transmissão (não existe substream), então a câmera a usa tanto para gravação quanto para detecção.

Reinicie e confira:

docker compose restart frigate
docker logs -f frigate

Para verificar só o go2rtc, adicione temporariamente a porta 1984:1984 ao docker-compose e abra http://<server-ip>:1984. A transmissão camrelay deve ter uma fonte RTSP com vídeo H264 e áudio PCMU/PCMA ou OPUS. Quando o CamRelay aparecer na página inicial do Frigate, está pronto.

Passo 3: config.yml completo

O arquivo abaixo contém só o que o CamRelay precisa: a transmissão no go2rtc, o WebRTC, o login (para o HTTPS, exigido pelo áudio bidirecional) e a gravação com som.

go2rtc:
  streams:
    camrelay:
      - rtsp://192.168.1.50:1935/   # a URL que o CamRelay mostra, H.264 + G.711 ULAW
  webrtc:
    candidates:
      - 192.168.1.100:8555   # IP do servidor 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: exigido pelo Frigate
    record:
      enabled: true
    live:
      streams:
        CamRelay: camrelay

version: 0.16-0

Solução de problemas

A maioria dos problemas ao adicionar o CamRelay ao Frigate está na URL da transmissão, nos codecs ou na rede.

Sintoma Causa comum Solução
A câmera mostra "No frames received" URL ou porta errada, CamRelay não está transmitindo, ou o Android o encerrou em segundo plano Copie de novo a URL na tela principal do CamRelay; teste com o ffprobe; abra http://<ip>:1984 (se exposto) para ver se o go2rtc está recebendo a transmissão
Não conecta, mesmo no mesmo Wi-Fi Celular com Android 17 sem acesso à rede local; "isolamento de clientes" no roteador; rede de convidados; VPN Permita Dispositivos por perto para o CamRelay; desative o isolamento de clientes/AP; coloque o servidor e o celular na mesma rede principal
Imagem travando ou cortada Pacotes UDP perdidos Adicione #transport=tcp à URL no go2rtc
A visualização ao vivo não reproduz no navegador Transmissão H.265 ou webrtc.candidates ausente Escolha H.264 no CamRelay, ou transcodifique com ffmpeg:...#video=h264; defina webrtc.candidates
A conexão cai de vez em quando Wi-Fi instável, otimização de bateria do Android, celular superaquecendo Use IP fixo, mantenha o celular carregando, desative a otimização de bateria para o CamRelay, ative Início automático ao ligar o Dispositivo, use o botão de escurecer a tela; acompanhe a temperatura no topo da tela do CamRelay; confira os logs do Frigate em Settings → System → Logs
Sem som na visualização ao vivo Habilitar Áudio desativado, ou assistindo em MSE enquanto o CamRelay envia OPUS Ative o áudio no CamRelay; escolha G.711 ULAW para ouvir som tanto no MSE quanto no WebRTC
O microfone não funciona Frigate aberto via HTTP em vez de HTTPS, ou porta 8555 ausente Abra o Frigate em https://<ip>:8971; exponha a porta 8555 TCP/UDP e defina webrtc.candidates

Ao pedir ajuda nas GitHub Discussions do Frigate, inclua seu arquivo de configuração, o log de inicialização e a saída do ffprobe para a transmissão do CamRelay. Para dúvidas sobre o CamRelay, toque em Enviar feedback na tela Sobre do app.

Baixe o CamRelay no Google Play

Encontre mais novidades, guias e apps da Banana Studio em xnano.net.


Fontes: documentação de Live View do Frigate para o go2rtc; o guia do usuário do CamRelay e a página no Google Play para o CamRelay.

Related app

CamRelay - Câmera IP ao vivo via RTSP

Transforme seu celular Android em uma poderosa câmera de rede RTSP.

Related posts