Skip to main content
Esta página fue traducida automáticamente. Si encuentra errores o tiene sugerencias, contáctenos.
Ejemplo completo disponibleLa implementación completa y funcional está disponible en GitHub: RhombusSystems/player-example

Descripción general

La integración del reproductor de video de Rhombus te permite:

Transmitir video en vivo

Muestra feeds de cámara en tiempo real con streaming de tasa de bits adaptativa

Autenticación segura

Usa tokens de sesión federados para un acceso seguro y por tiempo limitado

Reproducción optimizada

Ajustes preconfigurados y optimizados para grabaciones de cámaras de seguridad

Integración sencilla

Solución lista para usar con una configuración mínima

Arquitectura

La implementación del reproductor de video sigue una arquitectura de tres niveles:
1

El frontend solicita un token

Tu aplicación web solicita la autenticación a tu servidor backend
2

El backend hace de proxy hacia Rhombus

Tu servidor se autentica con la API de Rhombus usando tu API key y devuelve un token federado
3

El frontend obtiene la URI de medios

Usando el token, tu frontend solicita la URI de streaming de la cámara
4

Reproducción directa del stream

El reproductor DashJS se conecta directamente al CDN de Rhombus usando la URI autenticada

Requisitos previos

Antes de implementar el reproductor de video, asegúrate de tener:
Genera una API key desde tu Consola de Rhombus. Tu servidor backend usará esta clave para autenticarse con la API de Rhombus.
Nunca expongas tu API key en el código del frontend. Usa siempre un servidor proxy backend.
Obtén el UUID de tu cámara desde la Consola de Rhombus o mediante la API:
Configura un servidor proxy para gestionar la autenticación de la API. Tu servidor debe implementar dos endpoints:
  • Endpoint de generación de token (reenvía a /org/generateFederatedSessionToken)
  • Endpoint de URI de medios (reenvía a /camera/getMediaUris)

Guía de implementación

Paso 1: Configura tu página HTML

Crea una estructura HTML básica con el reproductor DashJS:
index.html

Paso 2: Configura los ajustes del reproductor

Crea tu archivo de configuración del reproductor:
player.js

Paso 3: Implementa la autenticación

Agrega la funcionalidad de gestión de tokens:
Token Management

Paso 4: Obtén la URI del stream de medios

Implementa la obtención de la URI de medios:
Media URI Request

Paso 5: Inicializa el reproductor DashJS

Configura el reproductor de video con ajustes optimizados:
Player Initialization

Paso 6: Agrega controles de reproducción

Implementa la funcionalidad de reproducir/pausar:
Playback Controls

Implementación del servidor backend

Tu servidor backend debe hacer de proxy de las solicitudes hacia la API de Rhombus. Aquí tienes un ejemplo usando Node.js/Express:
server.js

Opciones de configuración del reproductor

El reproductor DashJS se puede personalizar con varios ajustes optimizados para distintos casos de uso:
boolean
predeterminado:"true"
Habilita la recuperación automática hasta el borde en vivo cuando la reproducción se queda atrás
number
predeterminado:"10"
Deriva máxima permitida desde el borde en vivo, en segundos, antes de que se active la recuperación
number
predeterminado:"12"
Tamaño de búfer objetivo para una reproducción estable, en segundos
boolean
predeterminado:"false"
Deshabilita el cambio rápido de calidad para mantener una calidad de video consistente
boolean
predeterminado:"true"
Omite automáticamente los pequeños huecos en el stream
number
predeterminado:"0.5"
Tiempo en segundos antes de considerar que la reproducción está estancada

Mejores prácticas de seguridad

Requisitos de seguridad críticosSigue estas prácticas de seguridad para proteger tus credenciales de la API y garantizar un streaming seguro:
  • Almacena las API keys solo en tu servidor backend
  • Usa variables de entorno para las credenciales sensibles
  • Nunca subas API keys al control de versiones
  • Rota las claves con regularidad
  • Autentica a los usuarios antes de otorgar acceso al stream
  • Implementa límites de tasa en tus endpoints de proxy
  • Registra todas las solicitudes de acceso para las pistas de auditoría
  • Usa tokens federados de corta duración (24 horas o menos)
  • Sanea las entradas del UUID de la cámara
  • Valida la expiración del token
  • Verifica los permisos del usuario antes de hacer de proxy de las solicitudes
  • Implementa protección CSRF
  • Aplica HTTPS para todas las comunicaciones
  • Implementa certificados SSL/TLS adecuados
  • Habilita los encabezados HSTS
  • Valida las cadenas de certificados

Solución de problemas

Verifica estos problemas comunes:
  1. Verifica que tu servidor backend esté en ejecución y sea accesible
  2. Confirma que el UUID de la cámara sea correcto (revisa la Consola de Rhombus)
  3. Revisa la consola del navegador en busca de mensajes de error
  4. Verifica que la API key tenga los permisos adecuados
  5. Asegúrate de que CORS esté configurado correctamente en tu servidor
Prueba tus endpoints:
Almacenamiento en búfer o tartamudeo:
  • Reduce bufferTimeAtTopQuality para un inicio más rápido
  • Aumenta stableBufferTime para una reproducción más fluida
  • Verifica el ancho de banda y la latencia de la red
  • Verifica la conectividad del CDN
Desconexiones del stream:
  • Verifica la expiración del token (24 horas por defecto)
  • Verifica que la conectividad de red sea continua
  • Revisa las reglas del firewall para el acceso al CDN
  • Revisa la consola del navegador en busca de errores
La generación del token falla:
  • Verifica que la API key sea válida y no haya expirado
  • Revisa los permisos de la API key en la Consola de Rhombus
  • Asegúrate de que los encabezados tengan el formato correcto
  • Verifica que la cuenta esté activa
El token se rechaza durante la reproducción:
  • Verifica el tiempo de expiración del token
  • Verifica que los parámetros de la URL se agreguen correctamente
  • Asegúrate de que el token se pase correctamente a todas las solicitudes
  • Revisa si hay caracteres especiales en el token

Funciones avanzadas

Cuadrícula multicámara

Muestra varios feeds de cámara simultáneamente:
Multi-Camera Setup

Controles personalizados

Crea controles de video personalizados:
Custom Controls

Próximos pasos

Ejemplo en GitHub

Clona el ejemplo completo y funcional

Documentación de DashJS

Aprende más sobre la configuración de DashJS

Obtén soporte

Únete a la comunidad de desarrolladores para obtener ayuda

Soporte

¿Necesitas ayuda con tu implementación?
Esta guía de implementación se basa en el ejemplo de reproductor de Rhombus oficial y se actualiza periódicamente para reflejar las mejores prácticas.
Última modificación el 8 de julio de 2026