Esta página fue traducida automáticamente. Si encuentra errores o tiene sugerencias, contáctenos.
Cómo funciona
createRawHttpStream y los canaliza a través de FFmpeg (stream copy — sin transcodificación) hacia MediaMTX, que los sirve como RTSP estándar.
Latencia inferior a un segundo, siempre el fotograma más reciente
Como los streams se copian en lugar de transcodificarse (-c copy), no hay retraso de decodificación/codificación. EdgeCaster minimiza la latencia eliminando el buffering en cada salto:
- FFmpeg se ejecuta sin buffering de entrada, con flags de baja latencia, tiempo de sondeo/análisis reducido para un arranque rápido, y retardo y precarga de multiplexación en cero, de modo que los paquetes se reenvían en cuanto llegan. Los parámetros ajustables (tamaño de sondeo, duración de análisis, umbral de congelamiento) están expuestos en
/etc/edgecaster/config.yamlpor si necesitas ajustarlos en el dispositivo. - MediaMTX está ajustado para baja latencia y detección rápida de fallos: su API de control está habilitada en localhost y un timeout de lectura corto descarta rápidamente a un publicador congelado. Cada lector RTSP tiene su propia cola, así que un consumidor lento no puede añadir latencia al publicador ni a otros lectores.
Streams concurrentes ilimitados
No hay límite fijo de streams: el dispositivo ejecuta tantos streams como permitan su red y su CPU. Como el stream copy es muy ligero, las pruebas reales en una Raspberry Pi 5 mostraron varios streams 1080p más múltiples lectores RTSP con aproximadamente un 3% de CPU, dejando un amplio margen.max_streams: 0 (el valor predeterminado) significa ilimitado; establece un valor positivo en config.yaml si quieres un techo de seguridad opcional.
Autorrecuperación 24/7
EdgeCaster monitorea cada stream a nivel de fotograma usando la salida de progreso de FFmpeg — no solo “¿el proceso está vivo?” — de modo que un feed congelado pero vivo (sin fotogramas nuevos) se detecta en segundos mediante un watchdog. Todos los desencadenantes de fallo (salida del proceso, feed congelado, proceso muerto) pasan por una única ruta de recuperación que garantiza exactamente un relanzamiento, sin carreras de doble reinicio. La recuperación vuelve a obtener una URL de Secure Raw Stream nueva desde Rhombus (los tokens de stream expiran) y se reanuda, normalmente en segundos. Si un stream sigue fallando, EdgeCaster reintenta rápido (cada 5 segundos, hasta 10 veces), luego pasa a un intervalo de 5 minutos — y sigue intentando para siempre. Nunca se rinde de forma permanente en un dispositivo 24/7. La recuperación de feeds congelados usa un backoff más ligero y rápido.Características
- Latencia añadida inferior a un segundo, retransmisión siempre del último fotograma (stream copy, sin transcodificación)
- Streams concurrentes ilimitados — tantos como permitan la red y la CPU del dispositivo
- Autorrecuperación 24/7 con detección de congelamiento a nivel de fotograma y renovación automática de la URL del stream
- Panel de salud en vivo con métricas en tiempo real por Server-Sent Events
- Alertas por webhook ante caídas de streams y sobrecarga del dispositivo (Slack, Make.com o cualquier listener HTTP)
- Visor de logs en vivo en el panel — sin necesidad de SSH
- Acceso público seguro opcional con un clic mediante un túnel rápido de Cloudflare
- Descubrimiento automático de cámaras a través de la API de Rhombus
- Estado de streams persistente entre reinicios; los streams se restauran automáticamente al arrancar
- Actualizaciones automáticas nocturnas, instalador de una línea e imagen de Raspberry Pi lista para grabar
Requisitos
Instalación
- Instalación de una línea
- Imagen de Raspberry Pi
- Checkout de git / Generador de imágenes
En cualquier máquina con Ubuntu o Debian (Raspberry Pi, mini-PC o máquina virtual), ejecuta:El script descarga e instala todo — FFmpeg, MediaMTX, servicios systemd — y luego imprime la dirección web que debes abrir.
Configuración inicial (2 minutos)
1
Abre el panel
Abre EdgeCaster en un navegador web:
http://edgecaster.local o http://<device-ip>.2
Pega tu Rhombus Org API Key
Tus cámaras aparecen automáticamente.
3
Activa una cámara
Acciona el interruptor junto a cualquier cámara para iniciar su stream RTSP.
4
Conecta tus sistemas
Copia el enlace RTSP de la cámara en tu VMS, NVR o sistema de IA:Los nombres de las cámaras se normalizan a slugs seguros para URL y se persisten, de modo que las rutas RTSP sobreviven a los reinicios. Prueba con VLC:
vlc rtsp://<device-ip>:8554/<stream-name>Panel web
El panel es una consola de operador limpia y adaptable que funciona en cualquier dispositivo o navegador — en móvil, la barra lateral se convierte en un cajón deslizante. Un pulso de estado persistente (conteo de streams activos y un indicador de salud) siempre está visible en la barra superior.Métricas de salud en vivo
El panel transmite métricas en vivo (aproximadamente una vez por segundo) por Server-Sent Events — sin actualización manual: streams activos, cámaras encontradas, % de CPU, % de memoria, temperatura, estado de energía/throttling (bajo voltaje y throttling), promedio de carga de 1 minuto, tiempo de actividad, y rendimiento y conteo de lectores por stream.Las métricas de temperatura y energía/throttling de la Raspberry Pi requieren el kernel de Raspberry Pi (
linux-raspi). Con el kernel -generic/virtual de Ubuntu estas muestran “N/A” porque el SO no expone sensores térmicos. Solución: sudo apt-get install -y linux-raspi && sudo reboot. Todo lo demás funciona igualmente.Alertas por webhook
EdgeCaster puede enviar una alerta a un webhook genérico — un webhook entrante de Slack, Make.com o cualquier listener HTTP — cuando:- Un stream se cae o no puede recuperarse
- La Pi informa bajo voltaje (alimentación insuficiente)
- La Pi informa throttling térmico
- La CPU o el promedio de carga se mantienen altos
Logs en vivo
Una pestaña Logs (bajo Cameras) muestra los logs del dispositivo en vivo en una consola estilo terminal — útil para diagnosticar un problema de cámara o de conexión sin SSH:- Fuentes: Application, Streams y Rhombus API
- Las líneas nuevas llegan en vivo, con niveles de log codificados por color
- Controles de pausa y limpieza
Acceso público (opcional)
Para acceder al panel desde fuera de tu red, ve a Settings → Public Access, establece un usuario y contraseña y haz clic en Turn on public access. EdgeCaster crea un enlace público seguro mediante un túnel rápido de Cloudflare y lo muestra. No se requiere cuenta, token ni configuración de Cloudflare. El modelo de acceso: en tu red local nunca inicias sesión; el enlace público siempre requiere el usuario y la contraseña. Solo el tráfico que llega por el túnel público es desafiado (autenticación HTTP Basic); la contraseña se almacena con hash, nunca en texto plano. El acceso público requiere el asistentecloudflared, que el instalador incluye.
Puertos de red
Endpoints de la API de Rhombus utilizados
EdgeCaster interactúa automáticamente con 5 endpoints de la API de Rhombus:Gestión de servicios
EdgeCaster se ejecuta como servicios systemd (edgecaster y mediamtx) con integración de watchdog. Las cámaras habilitadas y sus slugs RTSP persisten entre reinicios, y los streams se restauran automáticamente al arrancar.
Actualizaciones automáticas
EdgeCaster busca actualizaciones cada hora y las aplica (git fast-forward) durante una ventana configurable (predeterminada: 2:00–5:00 AM). Todos los métodos de instalación se actualizan automáticamente, incluidas las instalaciones manuales por checkout de git. Configúrala desde la página Settings de la interfaz web o directamente:Configuración
La configuración vive en/etc/edgecaster/config.yaml; el estado de ejecución (cámaras habilitadas y slugs RTSP) vive en /var/lib/edgecaster/state.json; los logs viven en /var/log/edgecaster/. Claves destacadas:
Desarrollo local
API de EdgeCaster
El backend de EdgeCaster expone una API REST local:Limitaciones
- La autenticación RTSP no está habilitada en v1 — restringe el acceso mediante controles de red (puede añadirse vía configuración de MediaMTX)
- Los sistemas consumidores deben estar en la red local — el acceso público no tuneliza RTSP
- Los tokens de stream raw seguro expiran automáticamente; EdgeCaster los vuelve a obtener durante la recuperación
- Sin inicio de sesión en la interfaz web de la LAN — implementación solo en red de confianza (el acceso público añade un inicio de sesión solo para el túnel público)
Notas de seguridad
- Tu API key se almacena en
/etc/edgecaster/config.yaml(propiedad del usuarioedgecaster, no legible por todos) - Las API keys nunca se registran ni se exponen en las respuestas de la API
- El servicio systemd se ejecuta con seguridad reforzada:
NoNewPrivileges,ProtectSystem=strict,ProtectHome,PrivateTmp - Los streams RTSP no están autenticados — restringe el acceso al puerto 8554 a nivel de red
- Con el acceso público activado, solo el tráfico del túnel es desafiado con autenticación HTTP Basic; la contraseña se almacena con hash (nunca en texto plano) y el tráfico de la LAN nunca es desafiado
Solución de problemas
No se encuentran cámaras
No se encuentran cámaras
Verifica que tu API key de Rhombus sea válida y tenga acceso a las cámaras. Comprueba que el dispositivo pueda alcanzar
api2.rhombussystems.com. Intenta actualizar el descubrimiento desde la página Settings.El stream no inicia
El stream no inicia
Comprueba que FFmpeg esté instalado (
ffmpeg -version), que MediaMTX esté en ejecución (systemctl status mediamtx) y que la cámara esté en línea. Revisa la pestaña Logs bajo Cameras, o consulta los logs con journalctl -u edgecaster -f.La URL RTSP no funciona
La URL RTSP no funciona
Confirma que el stream aparezca como “running” en la interfaz web. Prueba con VLC:
vlc rtsp://<device-ip>:8554/<path>. Comprueba que el puerto 8554 no esté bloqueado por un firewall.La temperatura o el estado de energía muestran N/A
La temperatura o el estado de energía muestran N/A
En una Raspberry Pi con el kernel
-generic o virtual de Ubuntu, el SO no expone sensores térmicos. Instala el kernel de Pi: sudo apt-get install -y linux-raspi && sudo reboot. Todas las demás métricas funcionan igualmente.El enlace público dejó de funcionar
El enlace público dejó de funcionar
El enlace público es efímero — cambia cada vez que el acceso público se reinicia (por ejemplo, tras un reinicio del dispositivo). Abre Settings → Public Access desde la LAN para ver el enlace actual.
La actualización automática no se ejecuta
La actualización automática no se ejecuta
Revisa el timer:
systemctl status edgecaster-update.timer. Verifica que la instalación sea basada en git (que exista la carpeta .git) y que la hora actual esté dentro de la ventana de actualización.¿Necesitas ayuda?
Escribe a support@rhombus.com y te ayudaremos con la configuración. Es útil incluir qué estabas haciendo y cualquier cosa que muestre el panel.Recursos
Repositorio de GitHub
Código fuente, generador de imágenes y rastreador de incidencias
Guía de streaming de video
Integración de streaming directo sin conversión RTSP
React SDK
Incrusta streams de cámara en aplicaciones React
API Reference
Documentación completa de los endpoints de stream raw y de cámara