Esta página fue traducida automáticamente. Si encuentra errores o tiene sugerencias, contáctenos.
@rhombussystems/react ofrece componentes React listos para usar que transmiten cámaras de Rhombus. Hay dos modos de reproductor disponibles:
RhombusBufferedPlayer— Transmisión en vivo MPEG-DASH mediante Dash.js (con búfer, confiable)RhombusRealtimePlayer— H.264 de baja latencia por WebSocket mediante WebCodecs (casi en tiempo real)
Requiere React 18+ y un endpoint de backend que genere tokens de sesión federados. Tu API key de Rhombus nunca debe exponerse al navegador.
Instalación
react y react-dom >= 18. La biblioteca dashjs se incluye automáticamente para la reproducción DASH.
Inicio rápido
- Solicita un token de sesión federado a tu backend (
POST /api/federated-token) - Obtiene los URIs de medios desde la API de Rhombus
- Inicializa la reproducción con Dash.js
Reproductor con búfer (DASH)
ElRhombusBufferedPlayer transmite video en vivo MPEG-DASH con niveles de calidad configurables.
Calidad de la transmisión
Controla el reescalado del lado del servidor con la propbufferedStreamQuality:
Cambiar la calidad no vuelve a obtener el manifiesto ni el token: el
RequestModifier de Dash.js aplica el cambio en la siguiente solicitud de segmento.
Reproductor en tiempo real (WebSocket)
ElRhombusRealtimePlayer decodifica fotogramas H.264 por WebSocket usando la API WebCodecs del navegador y los renderiza en un <canvas>. Esto ofrece menor latencia que DASH.
Modos de conexión
Calidad de la transmisión
Compatibilidad de navegadores: WebCodecs con decodificación H.264 es compatible con Chrome, Edge y Safari 16.4+. La compatibilidad con Firefox es limitada.
Consideraciones del modo LAN
En modo LAN, el SDK añade el token federado a la URL del WebSocket como parámetros de consulta (x-auth-scheme=federated-token y x-auth-ft), de la misma forma que en WAN. Esto funciona desde cualquier origen, incluido localhost.
El requisito práctico del modo LAN es la accesibilidad de red: el navegador debe poder alcanzar directamente el host de la cámara/NVR (se aplican reglas de enrutamiento, firewall y de contenido mixto HTTPS-vs-HTTP). Además, tu implementación de Rhombus debe aceptar los parámetros de consulta del token federado en el endpoint LAN.
Las versiones anteriores del SDK (previas a la 1.0) autenticaban el modo LAN con una cookie
RFT y una prop applyLanAuthCookie. Ese mecanismo se eliminó en la v1.0: LAN ahora usa parámetros de consulta en la URL igual que WAN. Si estás siguiendo una guía más antigua, actualiza tu integración en consecuencia.Configuración del backend
El SDK requiere un endpoint del lado del servidor para generar tokens de sesión federados. Tu API key de Rhombus permanece en el servidor: nunca se envía al navegador.Endpoint del token
Tu backend debe exponer un endpoint POST (ruta predeterminada:/api/federated-token):
Modo de anulación (proxy de todas las solicitudes)
Si prefieres mantener todo el tráfico de Rhombus en el lado del servidor (el navegador nunca se comunica directamente con Rhombus), usaapiOverrideBaseUrl:
POST /api/media-uris que actúe como proxy hacia el POST /camera/getMediaUris de Rhombus.
Referencia de props
Props compartidas
Props de RhombusBufferedPlayer
Props de RhombusRealtimePlayer
Solución de problemas
404 en /api/federated-token
404 en /api/federated-token
Tu backend no tiene un endpoint de token en la ruta esperada. Implementa
POST /api/federated-token o establece la prop paths.federatedToken para que coincida con tu ruta.Errores de CORS al solicitar los URIs de medios
Errores de CORS al solicitar los URIs de medios
El token federado se generó sin un
domain que coincida con el origen de tu aplicación. Pasa el origen de tu aplicación como el parámetro domain al llamar a generateFederatedSessionToken en tu backend.El reproductor en tiempo real no muestra nada
El reproductor en tiempo real no muestra nada
Verifica la compatibilidad del navegador: WebCodecs H.264 requiere Chrome, Edge o Safari 16.4+. Revisa la consola del navegador en busca de mensajes
[RhombusRealtimePlayer].El modo LAN no autentica
El modo LAN no autentica
El modo LAN añade el token federado a la URL del WebSocket como parámetros de consulta (igual que WAN), por lo que funciona desde cualquier origen, incluido
localhost. Si el modo LAN falla, confirma que el navegador puede alcanzar directamente el host de la cámara/NVR (enrutamiento, firewall y reglas de contenido mixto HTTPS-vs-HTTP), y que tu implementación de Rhombus acepta los parámetros de consulta del token federado en el endpoint LAN. Si el host LAN no es accesible desde el navegador, usa connectionMode="wan" o redirige el tráfico a través de tu backend.Recursos
Paquete npm
Detalles del paquete e historial de versiones
Repositorio de GitHub
Código fuente, ejemplos y problemas
Guía de transmisión de video
Implementación de transmisión de bajo nivel sin el SDK
Guía del reproductor de video
Implementación de un reproductor Dash.js personalizado