Esta página fue traducida automáticamente. Si encuentra errores o tiene sugerencias, contáctenos.
Descripción general
Cuando tu cliente está en la misma red que un dispositivo Rhombus, puede obtener video en vivo, grabaciones y audio directamente del dispositivo en lugar de hacerlo a través de la nube de Rhombus. Obtienes menor latencia y no consumes ancho de banda de internet. Esta guía cubre:- En qué se diferencian los API tokens y los tokens federados, y cuál usar en cada caso
- Cómo generar un token federado y encontrar los URI LAN de un dispositivo
- Cómo autenticar solicitudes LAN con headers o parámetros de consulta
- H.264 en vivo y audio bidireccional por WebSocket, además de DASH/HLS para video en vivo y grabado
- Limitaciones de los navegadores y solución de problemas
API tokens vs tokens federados
Son dos credenciales distintas con funciones distintas.
Un token federado es una credencial al portador: cualquiera que lo tenga puede actuar con su rol. Para streaming por LAN, genera tokens limitados a un dispositivo con
deviceUUid. Un token limitado a un dispositivo solo puede obtener los medios de ese dispositivo, y la API en la nube lo rechaza. Además, genéralo con un API token cuyo rol no sea más amplio de lo que el espectador necesita, y mantén durationSec corto.
El valor de
x-auth-scheme es exactamente federated-token. No existe el esquema federated-session-token, y un token federado nunca va en x-auth-apikey.Requisitos previos
- Una API key de Rhombus con permiso para ver las cámaras o gateways de audio que vas a transmitir (obtén una aquí)
- Un cliente en la misma red que el dispositivo, capaz de alcanzarlo en el puerto TCP
8000 - Un dispositivo que pueda alcanzar la nube de Rhombus. El dispositivo verifica cada token nuevo con Rhombus, así que un dispositivo sin acceso a internet no puede autorizar clientes nuevos.
Implementación
1
Genera un token federado en tu servidor
Llama a Ejemplo de respuesta:
generateFederatedSessionToken con tu API key. Tu API key nunca sale de tu servidor.El token nunca puede hacer más que el API token que lo generó. Si ese rol solo permite video en vivo, el dispositivo sirve streams en vivo y rechaza las grabaciones.
2
Obtén los URI LAN del dispositivo
En tu servidor, llama a
POST /api/camera/getMediaUris con cameraUuid, o a /api/audiogateway/getMediaUris con gatewayUuid, usando tu API key. Un token federado limitado a un dispositivo no puede llamar a la API en la nube.Python
- Cada campo es un arreglo porque un dispositivo puede tener más de una dirección LAN. Usa la primera que tu cliente pueda alcanzar.
- En las plantillas VOD, reemplaza
{START_TIME}por una marca de tiempo Unix en segundos y{DURATION}por una duración en segundos. - El nombre de host LAN es DNS público que resuelve a la IP privada del dispositivo, y el dispositivo sirve un certificado de confianza pública para él. Conéctate usando el nombre de host exactamente como se devuelve, no la IP directa, y mantén activada la verificación TLS normal. Los dispositivos de la región UE usan nombres de host
.lan.eu.rhombussystems.com(Regiones de API).
3
Presenta el token federado al dispositivo
Envía el token federado en cada solicitud al dispositivo, incluido cada segmento DASH/HLS y el upgrade del WebSocket. Usa la forma que admita tu cliente:El dispositivo verifica el token con Rhombus: debe estar vigente, pertenecer a la organización del dispositivo y tener un rol que pueda ver este dispositivo. El dispositivo guarda en caché una verificación exitosa hasta por 60 segundos, así que un token expirado o revocado puede seguir funcionando hasta un minuto.
- Headers
- Parámetros de consulta
Para apps nativas, servidores, curl y ffmpeg:
Ejemplos de código
Manifiesto DASH en vivo
cURL
200). Un token ausente, expirado o no autorizado devuelve 401.
Grabaciones con ffmpeg
ffmpeg pasa-headers a cada solicitud de playlist y de segmento. Esto guarda 60 segundos de grabación a partir de 1767225600 (2026-01-01 00:00:00 UTC):
ffmpeg
H.264 en vivo por WebSocket
RhombusRealtimePlayer con connectionMode="lan" del React SDK.
Audio por WebSocket
El socketlanLiveOpusUris transporta audio en ambas direcciones y usa la misma autenticación con token federado.
Escuchar
Cada mensaje binario del dispositivo contiene tres registros TLV. El encabezado de cada registro tiene 1 bit (bandera de eco), 7 bits (tipo) y una longitud de 24 bits big-endian, seguido del valor.Hablar
Para reproducir audio en el altavoz del dispositivo, envía mensajes binarios por el mismo socket. Cada registro es un tipo ASCII de 4 bytes, una longitud de 4 bytes big-endian y luego el contenido. Cada registro de audio contiene exactamente 20 ms de audio.
De forma predeterminada, el dispositivo reproduce cada paquete Opus, incluso los atrasados, y descarta el PCM atrasado para mantener el tiempo real.
Aplicaciones de navegador
- Los streams WebSocket (
lanLiveH264Uris,lanLiveOpusUris) funcionan desde cualquier origen con el token en la cadena de consulta. - DASH y HLS por LAN (URL
lanLive*ylanVod*) no se pueden cargar con JavaScript del navegador, como dash.js o hls.js, en tu propio dominio, porque los dispositivos solo permiten orígenes de Rhombus para solicitudes entre orígenes. Reproduce DASH/HLS por LAN desde una app nativa o un servidor, o usa el stream WebSocket en el navegador. - Nunca pongas una API key en código de navegador. Genera tokens federados en tu servidor y entrega solo esos al navegador.
Dispositivos con firmware anterior
Los dispositivos con firmware publicado antes de mediados de abril de 2026 solo leen el token desde una cookie. Si un cliente nativo debe admitirlos, envía también:Solución de problemas
401 en todas las solicitudes
401 en todas las solicitudes
Ningún token llegó al dispositivo,
x-auth-scheme no es exactamente federated-token, o enviaste una API key en lugar de un token federado. Los dispositivos nunca aceptan API keys.401 después de funcionar un tiempo
401 después de funcionar un tiempo
El token federado expiró. Genera uno nuevo antes de que se agote
durationSec.401 en un dispositivo, bien en los demás
401 en un dispositivo, bien en los demás
El token se generó con
deviceUUid para otro dispositivo, o su rol no puede ver este dispositivo.El video en vivo funciona, las grabaciones se rechazan
El video en vivo funciona, las grabaciones se rechazan
El rol del token, heredado de la API key que lo generó, solo permite video en vivo.
La conexión se cierra sin respuesta
La conexión se cierra sin respuesta
El dispositivo no pudo alcanzar la nube de Rhombus para verificar el token.
Errores de TLS o de nombre de host
Errores de TLS o de nombre de host
Usa el nombre de host LAN de
getMediaUris, no la dirección IP directa.Próximos pasos
React SDK
Reproductores LAN y WAN listos para usar que manejan los tokens federados por ti.
Detección en tiempo real por LAN
Formato TLV completo de H.264 y superposiciones de cuadros delimitadores de IA.
Streaming de video
Miniaturas, streams compartidos y clips grabados a través de la nube.
Obtener audio
Streams y grabaciones de gateways de audio.