Utilizar todas as funcionalidades do CamRelay no Frigate NVR
Transforme um telemóvel Android de reserva numa câmara para o Frigate NVR: o CamRelay transmite RTSP com áudio e o go2rtc integrado no Frigate recebe-o para gravação, visualização em direto com som e intercomunicador. Passo a passo, com um config.yml completo.
On this page
Utilizar todas as funcionalidades do CamRelay no Frigate NVR
O CamRelay leva um telemóvel Android até ao Frigate através de um único URL RTSP. O go2rtc, integrado no Frigate, recebe essa transmissão e partilha-a com o gravador, a visualização em direto e o canal do intercomunicador.
O CamRelay é uma aplicação da Banana Studio que transforma o telemóvel numa câmara IP na sua rede local. Transmite vídeo H.264 ou H.265 com áudio Opus, G.711 ou AAC. Tem uma interface web, suporta ONVIF e recebe áudio de quem está a ver através do backchannel RTSP.
Fluxo de dados: telemóvel com o CamRelay → go2rtc (dentro do Frigate) → gravação, visualização em direto com som, intercomunicador.
A configuração abaixo segue o Frigate 0.16. Algumas chaves podem mudar em versões posteriores, por isso consulte a documentação oficial do Frigate.
Funcionalidades do CamRelay no Frigate
As quatro primeiras funcionalidades chegam ao Frigate através do go2rtc. As restantes são configuradas na aplicação e mantêm a transmissão a funcionar 24 horas por dia, 7 dias por semana.
| Funcionalidade do CamRelay | Utilização no Frigate | Onde configurar |
|---|---|---|
| Transmissão RTSP H.264/H.265, resolução e FPS da câmara do telemóvel | Gravação, deteção, visualização em direto | go2rtc, passo 2.1 |
| Áudio G.711 (PCMU/PCMA), Opus ou AAC | Som na visualização em direto e nas gravações | Codec na aplicação, passo 2.2 |
| Intercomunicador (backchannel RTSP) | Botão do microfone na visualização em direto | WebRTC + HTTPS, passo 2.3 |
| Sobreposições de data e hora, nome da câmara, IP, bateria e temperatura, coordenadas GPS e velocidade | Gravadas na imagem que o Frigate regista | Na aplicação, passo 1 |
| Arranque automático ao ligar, ecrã escurecido, pausa por sobreaquecimento ou bateria fraca | Evita que a transmissão caia | Na aplicação, passo 1 |
| Gravação MP4 no telemóvel, gestão de ficheiros no navegador | Gravações de segurança fora do Frigate | Na aplicação, passo 1 |
| Interface web | Verificar imagem e som, alterar definições sem parar a transmissão | Passo 1 |
Antes de começar
Vai precisar de:
- Um servidor Frigate instalado e a funcionar (consulte o guia de instalação do Frigate), na mesma rede local que o telemóvel.
- Um telemóvel Android com o CamRelay instalado, sempre ligado à corrente e com um endereço IP fixo atribuído no router.
- No Android 17: permita ao CamRelay o acesso à rede local (o Android apresenta-o como Dispositivos próximos). Sem ele, o Frigate não se consegue ligar ao telemóvel. Consulte o artigo sobre o CamRelay 1.0.5.
O contentor do Frigate tem de expor estas portas para utilizar todas as funcionalidades do CamRelay:
| Porta | Utilizada para |
|---|---|
| 8971 | Interface web HTTPS do Frigate, necessária para o intercomunicador |
| 8554 | Retransmissão RTSP do go2rtc |
| 8555 TCP e UDP | WebRTC: visualização em direto com som e intercomunicador |
Passo 1: Configurar o CamRelay
O CamRelay segue o idioma do telemóvel; os nomes das definições abaixo são os em português europeu. Atenção: abrir as Definições interrompe a transmissão. Com o CamRelay já a transmitir, pode alterar as definições a partir da interface web sem parar a transmissão.
1.1 Porta RTSP
A secção Portas do Servidor mostra a Porta de Transmissão RTSP (predefinição 1935) e a Porta da Interface Web (predefinição 8888). As predefinições servem perfeitamente.

1.2 Vídeo
- Em Seleção de Câmara, escolha a câmara a utilizar (a câmara traseira costuma dar melhor imagem).
- Abra as definições dessa câmara e escolha Resolução, Taxa de Fotogramas (FPS) e Bitrate de Vídeo. As resoluções e taxas de fotogramas disponíveis dependem da câmara do telemóvel.
- Em Definições Globais de Vídeo → Codec de Vídeo, escolha H.264 para que os navegadores consigam reproduzir a visualização em direto.
- Deixe o Intervalo de Key-frames (GOP) em 1s (a predefinição) para que a visualização em direto abra depressa.


Para videovigilância, 1080p a 15 FPS é suficiente e poupa o servidor do Frigate. O H.265 poupa largura de banda, mas o Frigate tem de o transcodificar para o navegador (consulte o passo 2.2).
1.3 Áudio
Em Definições de Áudio, ative Ativar Áudio. O codec de áudio da transmissão escolhe-se em Áudio Bidirecional → Codec de Áudio Bidirecional. Esta única definição aplica-se tanto ao som enviado como ao intercomunicador:
- G.711 ULAW: recomendado para o Frigate, é reproduzido diretamente tanto em MSE como em WebRTC (consulte o passo 2.2).
- OPUS: a predefinição a partir do Android 10, som mais nítido, mas só é reproduzido por WebRTC.
- G.711 ALAW: apenas se o dispositivo que recebe o áudio exigir A-law.
- AAC: apenas reprodução; o intercomunicador precisa de transcodificação.
Deixe o Modo de Áudio Bidirecional em Comunicação de Voz: tem cancelamento de eco, por isso o intercomunicador não provoca microfonia.

1.4 Sobreposições, gravação e funcionamento 24/7
- Sobreposição de Vídeo: mostre a data e hora, um nome de câmara (Nome da Câmara; deixe vazio para usar o nome do dispositivo), o endereço IP, a bateria e a temperatura, as coordenadas GPS ou um velocímetro. As sobreposições são desenhadas no próprio vídeo, por isso também aparecem nas gravações do Frigate. Estão todas desativadas por predefinição.
- Definições de Gravação: ative Ativar Gravação para ter uma cópia de segurança no telemóvel. Os ficheiros MP4 são guardados em
Movies/CamRelay, divididos segundo a Duração do Segmento de Gravação (em minutos). Quando o Armazenamento Máximo (MB) é atingido, os ficheiros mais antigos são eliminados. - Segurança & Automação: ative Início automático ao ligar o Dispositivo para que o CamRelay volte a transmitir depois de o telemóvel reiniciar. No Android 10 e posterior, a aplicação também precisa de autorização para se sobrepor a outras aplicações. Proteção de Temperatura e Proteção de Bateria colocam a transmissão em pausa quando o telemóvel aquece demasiado ou a bateria está fraca, e retomam-na quando tudo volta ao normal.
- Otimização da Bateria: confirme que a otimização da bateria está desativada para o CamRelay, para que o Android não o termine em segundo plano.



1.5 Iniciar a transmissão e obter o URL
Volte ao ecrã principal e toque no botão de reprodução. A barra no topo mostra a resolução, os 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/: o 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.

Para uma câmara que fica sempre no mesmo sítio, toque no ícone da lua (Escurecer Ecrã) para apagar o ecrã. Isto poupa energia e evita marcas permanentes em ecrãs OLED. Toque duas vezes para o voltar a acender.
Os exemplos abaixo usam rtsp://192.168.1.50:1935/; substitua-o pelo URL que o CamRelay mostra. A versão atual do CamRelay ainda não pede credenciais no RTSP, por isso utilize-o apenas numa rede de confiança.
Brevemente: a próxima atualização do CamRelay permite definir um nome de utilizador e uma palavra-passe para proteger a transmissão RTSP. Depois basta acrescentá-los ao URL no go2rtc, por exemplo
rtsp://user:[email protected]:1935/.
Pode verificar a transmissão a partir do servidor do Frigate com o ffprobe:
ffprobe -rtsp_transport tcp rtsp://192.168.1.50:1935/
O resultado deve listar uma faixa de vídeo h264 e uma faixa de áudio (pcm_mulaw com G.711 ULAW, opus com OPUS).
Passo 2: Configurar o go2rtc no Frigate
O go2rtc dentro do Frigate é o único que se liga ao telemóvel. Obtém a transmissão RTSP do CamRelay uma única vez e partilha-a com a gravação, a deteção, a visualização em direto (MSE, WebRTC) e o intercomunicador. O próprio Frigate lê a partir de rtsp://127.0.0.1:8554/camrelay, por isso o telemóvel nunca tem de servir várias ligações ao mesmo tempo. Assim aquece menos e poupa bateria.
2.1 Adicionar a transmissão
Acrescente um bloco go2rtc ao ~/frigate/config/config.yml:
go2rtc:
streams:
camrelay: # mesmo nome da câmara no Frigate
- rtsp://192.168.1.50:1935/ # o URL que o CamRelay mostra
webrtc:
candidates:
- 192.168.1.100:8555 # IP do servidor Frigate
- stun:8555
- Uma linha RTSP chega. Com áudio G.711 ou Opus, o go2rtc passa o vídeo e o som diretamente para o navegador, sem transcodificação
ffmpeg:. A mesma linha RTSP também transporta o canal do intercomunicador. webrtc.candidatesé obrigatório quando se usa Docker simples; 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âmara, o Frigate usa-a automaticamente na visualização em direto. Caso contrário, defina
live.streamspara a câmara.
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 em direto predefinida) reproduz AAC ou PCMA/PCMU, e o WebRTC (usado pelo intercomunicador) reproduz Opus ou PCMA/PCMU. Só o G.711 funciona diretamente em ambos.
| Á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 em MSE |
| AAC | Sim | Não | ffmpeg:camrelay#audio=opus para WebRTC |
O Opus soa mais nítido do que o G.711 (qualidade telefónica, 8 kHz) se vê sobretudo por WebRTC. Se tiver mesmo de usar H.265, acrescente 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 Intercomunicador
Durante a transmissão, o CamRelay está sempre pronto a receber áudio pelo backchannel RTSP; não há nenhum interruptor para ativar. O go2rtc abre este canal a partir da linha RTSP do passo 2.1, sem configuração adicional.
Para falar, abra o Frigate por HTTPS na porta 8971, vá à visualização em direto da câmara e prima o microfone; o Frigate muda sozinho para WebRTC. A sua voz sai pelo altifalante do telemóvel, ao volume definido em Volume de Reprodução no CamRelay.
Se outra aplicação também precisar de falar diretamente com o telemóvel, acrescente #backchannel=0 ao fim do URL RTSP para que o go2rtc não fique a ocupar o canal.
2.4 Adicionar a câmara ao Frigate
Acrescente um bloco cameras por baixo do bloco go2rtc. A câmara lê a transmissão a partir do go2rtc em vez de se ligar ao telemóvel:
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 há substream), por isso a câmara usa-a tanto para gravação como para deteção.
Reinicie e verifique:
docker compose restart frigate
docker logs -f frigate
Para verificar apenas o go2rtc, acrescente 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á concluído.
Passo 3: config.yml completo
O ficheiro abaixo contém apenas o que o CamRelay precisa: a transmissão no go2rtc, o WebRTC, o início de sessão (para o HTTPS, exigido pelo intercomunicador) e a gravação com som.
go2rtc:
streams:
camrelay:
- rtsp://192.168.1.50:1935/ # o 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
Resolução de problemas
A maioria dos problemas ao adicionar o CamRelay ao Frigate resume-se ao URL da transmissão, aos codecs ou à rede.
| Sintoma | Causa habitual | Solução |
|---|---|---|
| A câmara mostra "No frames received" | URL ou porta errados, CamRelay não está a transmitir, ou o Android terminou-o em segundo plano | Copie novamente o URL no ecrã principal do CamRelay; verifique-o com o ffprobe; abra http://<ip>:1984 (se exposto) para ver se o go2rtc recebe a transmissão |
| Não liga, mesmo na mesma rede Wi-Fi | Telemóvel com Android 17 sem acesso à rede local; "isolamento de clientes" no router; rede de convidados; VPN | Permita Dispositivos próximos ao CamRelay; desative o isolamento de clientes/AP; coloque o servidor e o telemóvel na mesma rede principal |
| Imagem aos soluços ou cortada | Pacotes UDP perdidos | Acrescente #transport=tcp ao URL no go2rtc |
| A visualização em direto não reproduz no navegador | Transmissão H.265 ou webrtc.candidates em falta |
Escolha H.264 no CamRelay, ou transcodifique com ffmpeg:...#video=h264; defina webrtc.candidates |
| A ligação cai de vez em quando | Wi-Fi instável, otimização da bateria do Android, telemóvel em sobreaquecimento | Use um IP fixo, mantenha o telemóvel a carregar, desative a otimização da bateria para o CamRelay, ative Início automático ao ligar o Dispositivo, use o botão para escurecer o ecrã; vigie a temperatura no topo do ecrã do CamRelay; consulte os registos do Frigate em Settings → System → Logs |
| Sem som na visualização em direto | Ativar Áudio desligado, ou a ver em MSE enquanto o CamRelay envia OPUS | Ative o áudio no CamRelay; escolha G.711 ULAW para ouvir som tanto em MSE como em WebRTC |
| O microfone não funciona | Frigate aberto por HTTP em vez de HTTPS, ou porta 8555 em falta | 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 o seu ficheiro de configuração, o registo de arranque e o resultado do ffprobe para a transmissão do CamRelay. Para questões sobre o CamRelay, toque em Enviar comentários no ecrã Acerca de da aplicação.
Obtenha o CamRelay no Google Play
Encontre mais notícias, guias e aplicações da Banana Studio em xnano.net.
Fontes: documentação de Live View do Frigate para o go2rtc; o guia do utilizador do CamRelay e a página no Google Play para o CamRelay.
Related app
CamRelay - Câmara IP em direto via RTSP
Transforme o seu telemóvel Android numa poderosa câmara de rede RTSP.
Related posts
Como transformar um telemóvel Android antigo numa câmara de segurança
Dê uma segunda vida a um telemóvel Android antigo como câmara de segurança: coloque-o num bom sítio, mantenha-o ligado à corrente, deixe o CamRelay arrancar sozinho após um reinício e veja ou grave a câmara em qualquer navegador na sua rede Wi-Fi.
Como transformar um telemóvel Android numa câmara em direto
Transforme qualquer telemóvel Android numa câmara em direto em poucos minutos com o CamRelay: conceda as permissões, toque no botão de reprodução e veja a transmissão em qualquer navegador na sua rede Wi-Fi. Sem conta, sem nuvem, nada a instalar no dispositivo de visualização.