Banana Studio
Guides · BS Manager

Cómo usar todas las funciones de CamRelay en Frigate NVR

Convierte un móvil Android que ya no usas en una cámara para Frigate NVR: CamRelay transmite RTSP con audio y go2rtc, integrado en Frigate, lo recoge para grabar, ver en directo con sonido y hablar en ambos sentidos. Paso a paso, con un config.yml completo.

Cómo usar todas las funciones de CamRelay en Frigate NVR
On this page

Cómo usar todas las funciones de CamRelay en Frigate NVR

CamRelay lleva un móvil Android a Frigate con una sola URL RTSP. go2rtc, integrado en Frigate, recibe esa transmisión y la comparte con el grabador, la vista en directo y el canal de comunicación bidireccional.

CamRelay es una app de Banana Studio que convierte un móvil en una cámara IP de tu red local. Transmite vídeo H.264 o H.265 con audio Opus, G.711 o AAC. Tiene interfaz web, es compatible con ONVIF y recibe el audio que le devuelven los espectadores a través del backchannel RTSP.

Flujo de datos: móvil con CamRelay → go2rtc (dentro de Frigate) → grabación, directo con sonido, comunicación bidireccional.

La configuración de abajo sigue Frigate 0.16. Algunas claves pueden cambiar en versiones posteriores, así que consulta la documentación oficial de Frigate.

Funciones de CamRelay en Frigate

Las cuatro primeras funciones llegan a Frigate a través de go2rtc. El resto se configuran en la app y mantienen la transmisión activa 24/7.

Función de CamRelay Uso en Frigate Dónde se configura
Transmisión RTSP H.264/H.265, resolución y FPS de la cámara del móvil Grabación, detección, directo go2rtc, paso 2.1
Audio G.711 (PCMU/PCMA), Opus o AAC Sonido en el directo y en las grabaciones Códec en la app, paso 2.2
Comunicación bidireccional (backchannel RTSP) Botón de micrófono en el directo WebRTC + HTTPS, paso 2.3
Superposición de fecha y hora, nombre de la cámara, IP, batería y temperatura, coordenadas GPS y velocidad Integradas en la imagen que graba Frigate En la app, paso 1
Inicio automático al arrancar, pantalla atenuada, pausa por exceso de temperatura o batería baja Evita que la transmisión se corte En la app, paso 1
Grabación MP4 en el móvil, gestión de archivos desde el navegador Grabaciones de respaldo fuera de Frigate En la app, paso 1
Interfaz web Comprobar imagen y sonido, cambiar ajustes sin detener la transmisión Paso 1

Antes de empezar

Necesitas:

  • Un servidor Frigate instalado y en funcionamiento (consulta la guía de instalación de Frigate), en la misma red local que el móvil.
  • Un móvil Android con CamRelay instalado, siempre enchufado y con una dirección IP fija asignada en el router.
  • En Android 17: permite a CamRelay el acceso a la red local (Android lo muestra como Dispositivos cercanos). Sin él, Frigate no puede conectarse al móvil. Consulta el artículo sobre CamRelay 1.0.5.

El contenedor de Frigate debe exponer estos puertos para usar todas las funciones de CamRelay:

Puerto Uso
8971 Interfaz web HTTPS de Frigate, necesaria para la comunicación bidireccional
8554 Retransmisión RTSP de go2rtc
8555 TCP y UDP WebRTC: directo con sonido y comunicación bidireccional

Paso 1: configurar CamRelay

CamRelay sigue el idioma del móvil; los nombres de los ajustes de abajo son los de la versión en español. Atención: al abrir Ajustes se detiene la transmisión. Cuando CamRelay ya esté transmitiendo, puedes cambiar los ajustes desde la interfaz web sin detenerla.

1.1 Puerto RTSP

La sección Puertos del servidor muestra el Puerto de transmisión RTSP (por defecto 1935) y el Puerto de la interfaz web (por defecto 8888). Los valores por defecto sirven.

Puertos del servidor en los ajustes de CamRelay: puerto RTSP 1935 y puerto web 8888

1.2 Vídeo

  1. En Selección de cámara, elige la cámara que vas a usar (la trasera suele dar mejor imagen).
  2. Abre los ajustes propios de esa cámara y elige Resolución, Velocidad de fotogramas (FPS) y Tasa de bits de vídeo. Las resoluciones y velocidades disponibles dependen de la cámara del móvil.
  3. En Ajustes globales de vídeo → Códec de vídeo, elige H.264 para que los navegadores puedan reproducir el directo.
  4. Deja Intervalo de fotogramas clave (GOP) en 1s (valor por defecto) para que el directo se abra rápido.

Resolución, FPS y tasa de bits para cada cámara

Códec de vídeo H.264 e intervalo de fotogramas clave de 1 segundo

Para videovigilancia, 1080p a 15 FPS es suficiente y no sobrecarga el servidor Frigate. H.265 ahorra ancho de banda, pero Frigate tiene que transcodificarlo para el navegador (consulta el paso 2.2).

1.3 Audio

En Ajustes de audio, activa Habilitar audio. El códec de audio de la transmisión se elige en Comunicación bidireccional → Códec de audio bidireccional. Este único ajuste se aplica tanto al sonido que se envía como a la comunicación bidireccional:

  • G.711 ULAW: recomendado para Frigate, se reproduce directamente tanto en MSE como en WebRTC (consulta el paso 2.2).
  • OPUS: el predeterminado desde Android 10, sonido más claro, pero solo se reproduce por WebRTC.
  • G.711 ALAW: solo si el dispositivo que escucha requiere A-law.
  • AAC: solo reproducción; la comunicación bidireccional necesita transcodificación.

Deja Modo de audio bidireccional en Comunicación de voz: incluye cancelación de eco, así que la comunicación bidireccional no se acopla.

Códec de audio y modo de comunicación bidireccional

1.4 Superposiciones, grabación y funcionamiento 24/7

  • Superposición de vídeo: muestra la fecha y la hora, un nombre de cámara (Nombre de la cámara; déjalo vacío para usar el nombre del dispositivo), la dirección IP, la batería y la temperatura, las coordenadas GPS o un velocímetro. Las superposiciones se dibujan dentro del propio vídeo, así que también aparecen en las grabaciones de Frigate. Todas vienen desactivadas por defecto.
  • Ajustes de grabación: activa Habilitar grabación para tener una copia de respaldo en el móvil. Los archivos MP4 se guardan en Movies/CamRelay, divididos según la Duración del segmento de grabación (minutos). Al llegar al Almacenamiento máximo (MB), se borran los archivos más antiguos.
  • Seguridad y automatización: activa Inicio automático al arrancar dispositivo para que CamRelay vuelva a transmitir después de reiniciar el móvil. Desde Android 10, la app también necesita permiso para mostrarse sobre otras apps. Protección contra temperatura y Protección de batería pausan la transmisión cuando el móvil se calienta demasiado o la batería está baja, y la reanudan cuando todo vuelve a la normalidad.
  • Optimización de batería: asegúrate de que la optimización de batería está desactivada para CamRelay, para que Android no lo detenga en segundo plano.

Opciones de superposición de vídeo

Grabación MP4 en el móvil

Inicio automático al arrancar y protección contra temperatura

1.5 Empezar a transmitir y obtener la URL

Vuelve a la pantalla principal y toca el botón de reproducción. La barra superior muestra la resolución, los FPS, la tasa de bits y los códecs en uso. La esquina inferior muestra tres direcciones, cada una con un botón para copiarla:

  • rtsp://<phone-ip>:1935/: la URL RTSP para Frigate.
  • http://<phone-ip>:8888: la interfaz web de CamRelay.
  • http://<phone-ip>:8889/onvif/device_service: el servicio ONVIF.

CamRelay transmitiendo: direcciones RTSP, web y ONVIF en la parte inferior

Para una cámara que se queda siempre en el mismo sitio, toca el icono de la luna (Atenuar pantalla) para dejar la pantalla en negro. Así ahorras energía y evitas que las pantallas OLED se marquen. Toca dos veces para reactivarla.

Los ejemplos de abajo usan rtsp://192.168.1.50:1935/; sustitúyela por la URL que muestra CamRelay. La versión actual de CamRelay todavía no pide usuario y contraseña en RTSP, así que úsala solo en una red de confianza.

Próximamente: la próxima actualización de CamRelay permite definir un usuario y una contraseña para proteger la transmisión RTSP. Entonces solo tendrás que añadirlos a la URL en go2rtc, por ejemplo rtsp://user:[email protected]:1935/.

Puedes comprobar la transmisión desde el servidor Frigate con ffprobe:

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

La salida debería mostrar una transmisión de vídeo h264 y una de audio (pcm_mulaw con G.711 ULAW, opus con OPUS).

Paso 2: configurar go2rtc en Frigate

go2rtc, dentro de Frigate, es lo único que se conecta al móvil. Recoge una sola vez la transmisión RTSP de CamRelay y la comparte con la grabación, la detección, el directo (MSE, WebRTC) y la comunicación bidireccional. El propio Frigate lee de rtsp://127.0.0.1:8554/camrelay, así que el móvil nunca tiene que atender varias conexiones a la vez. De este modo se calienta menos y ahorra batería.

2.1 Añadir la transmisión

Añade un bloque go2rtc a ~/frigate/config/config.yml:

go2rtc:
  streams:
    camrelay:                              # mismo nombre que la cámara de Frigate
      - rtsp://192.168.1.50:1935/          # la URL que muestra CamRelay
  webrtc:
    candidates:
      - 192.168.1.100:8555   # IP del servidor Frigate
      - stun:8555
  • Basta con una línea RTSP. Con audio G.711 u Opus, go2rtc pasa el vídeo y el sonido directamente al navegador, sin transcodificar con ffmpeg:. La misma línea RTSP lleva también el canal de comunicación bidireccional.
  • webrtc.candidates es obligatorio si usas Docker sin más; sin él, WebRTC y el micrófono no funcionan en la red local. Los puertos 8555 TCP/UDP ya se abrieron en "Antes de empezar".
  • Cuando la transmisión tiene el mismo nombre que la cámara, Frigate la usa automáticamente para el directo. Si no, configura live.streams para la cámara.

2.2 Códecs y audio

Configura CamRelay con vídeo H.264. G.711 es la opción de audio más sencilla. Según la documentación de Frigate, MSE (el directo por defecto) reproduce AAC o PCMA/PCMU, y WebRTC (el que se usa para la comunicación bidireccional) reproduce Opus o PCMA/PCMU. Solo G.711 funciona directamente en los dos.

Audio de CamRelay MSE WebRTC Línea extra en go2rtc
G.711 ULAW / ALAW (PCMU/PCMA) Sí Sí Ninguna
OPUS No Sí ffmpeg:camrelay#audio=aac para oírlo en MSE
AAC Sí No ffmpeg:camrelay#audio=opus para WebRTC

Opus suena más claro que G.711 (calidad telefónica de 8 kHz) si sueles ver el directo por WebRTC. Si tienes que usar H.265, añade una línea de transcodificación de vídeo y conserva la línea RTSP:

go2rtc:
  streams:
    camrelay:
      - rtsp://192.168.1.50:1935/
      - "ffmpeg:camrelay#video=h264#hardware"   # copia H.264 para los navegadores

2.3 Comunicación bidireccional

Mientras transmite, CamRelay siempre está listo para recibir audio por el backchannel RTSP; no hay ningún interruptor que activar. go2rtc abre este canal a partir de la línea RTSP del paso 2.1, sin configuración adicional.

Para hablar, abre Frigate por HTTPS en el puerto 8971, ve al directo de la cámara y pulsa el micrófono; Frigate cambia a WebRTC por sí solo. Tu voz sale por el altavoz del móvil, al volumen que marque Volumen de reproducción en CamRelay.

Si otra app también necesita hablar directamente con el móvil, añade #backchannel=0 al final de la URL RTSP para que go2rtc no ocupe el canal.

2.4 Añadir la cámara a Frigate

Añade un bloque cameras debajo del bloque go2rtc. La cámara vuelve a leer la transmisión desde go2rtc en lugar de conectarse al móvil:

cameras:
  camrelay:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/camrelay   # la transmisión de go2rtc del paso 2.1
          input_args: preset-rtsp-restream
          roles:
            - record
            - detect   # obligatorio en Frigate, no hay nada más que configurar
    record:
      enabled: true

CamRelay envía una sola transmisión (no hay subtransmisión), así que la cámara la usa tanto para grabar como para detectar.

Reinicia y comprueba:

docker compose restart frigate
docker logs -f frigate

Para comprobar solo go2rtc, añade temporalmente el puerto 1984:1984 a docker-compose y abre http://<server-ip>:1984. La transmisión camrelay debería tener una fuente RTSP con vídeo H264 y audio PCMU/PCMA u OPUS. Cuando CamRelay aparezca en la página de inicio de Frigate, ya está.

Paso 3: config.yml completo

El archivo de abajo contiene solo lo que necesita CamRelay: la transmisión de go2rtc, WebRTC, el inicio de sesión (para HTTPS, necesario para la comunicación bidireccional) y la grabación con sonido.

go2rtc:
  streams:
    camrelay:
      - rtsp://192.168.1.50:1935/   # la URL que muestra CamRelay, H.264 + G.711 ULAW
  webrtc:
    candidates:
      - 192.168.1.100:8555   # IP del 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: obligatorio en Frigate
    record:
      enabled: true
    live:
      streams:
        CamRelay: camrelay

version: 0.16-0

Solución de problemas

La mayoría de los problemas al añadir CamRelay a Frigate se deben a la URL de la transmisión, a los códecs o a la red.

Síntoma Causa habitual Solución
La cámara muestra "No frames received" URL o puerto incorrectos, CamRelay no está transmitiendo o Android lo ha detenido en segundo plano Vuelve a copiar la URL desde la pantalla principal de CamRelay; compruébala con ffprobe; abre http://<ip>:1984 (si está expuesto) para ver si go2rtc recibe la transmisión
No conecta, ni siquiera en la misma Wi-Fi Móvil con Android 17 sin acceso a la red local; "aislamiento de clientes" en el router; red de invitados; VPN Permite Dispositivos cercanos a CamRelay; desactiva el aislamiento de clientes/AP; pon el servidor y el móvil en la misma red principal
Imagen entrecortada o rota Paquetes UDP perdidos Añade #transport=tcp a la URL en go2rtc
El directo no se reproduce en el navegador Transmisión H.265 o faltan los candidatos WebRTC Elige H.264 en CamRelay o transcodifica con ffmpeg:...#video=h264; configura webrtc.candidates
La conexión se corta de vez en cuando Wi-Fi inestable, optimización de batería de Android, sobrecalentamiento del móvil Usa una IP fija, mantén el móvil cargando, desactiva la optimización de batería para CamRelay, activa Inicio automático al arrancar dispositivo, usa el botón de atenuar pantalla; vigila la temperatura en la parte superior de la pantalla de CamRelay; revisa los registros de Frigate en Settings → System → Logs
No hay sonido en el directo Habilitar audio está desactivado, o estás viendo en MSE mientras CamRelay envía OPUS Activa el audio en CamRelay; elige G.711 ULAW para oír el sonido tanto en MSE como en WebRTC
El micrófono no funciona Frigate abierto por HTTP en lugar de HTTPS, o falta el puerto 8555 Abre Frigate en https://<ip>:8971; expón el puerto 8555 TCP/UDP y configura webrtc.candidates

Si pides ayuda en las GitHub Discussions de Frigate, incluye tu archivo de configuración, el registro de arranque y la salida de ffprobe de la transmisión de CamRelay. Para preguntas sobre CamRelay, toca Comentarios en la pantalla Acerca de de la app.

Descarga CamRelay en Google Play

Encuentra más noticias, guías y apps de Banana Studio en xnano.net.


Fuentes: documentación de Live View de Frigate para go2rtc; la guía de usuario de CamRelay y la ficha de Google Play para CamRelay.

Related app

CamRelay - Cámara IP en directo mediante RTSP

Convierte tu teléfono Android en una potente cámara de red RTSP.

Related posts