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:Credenciales de la API de Rhombus
Credenciales de la API de Rhombus
Genera una API key desde tu Consola de Rhombus. Tu servidor backend usará esta clave para autenticarse con la API de Rhombus.
UUID de la cámara
UUID de la cámara
Obtén el UUID de tu cámara desde la Consola de Rhombus o mediante la API:
Servidor backend
Servidor backend
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:- Node.js/Express
- Python/Flask
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
Nunca expongas las API keys
Nunca expongas las API keys
- 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
Implementa controles de acceso
Implementa controles de acceso
- 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)
Valida todas las solicitudes
Valida todas las solicitudes
- 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
Usa HTTPS en todas partes
Usa HTTPS en todas partes
- Aplica HTTPS para todas las comunicaciones
- Implementa certificados SSL/TLS adecuados
- Habilita los encabezados HSTS
- Valida las cadenas de certificados
Solución de problemas
El video no carga
El video no carga
Verifica estos problemas comunes:
- Verifica que tu servidor backend esté en ejecución y sea accesible
- Confirma que el UUID de la cámara sea correcto (revisa la Consola de Rhombus)
- Revisa la consola del navegador en busca de mensajes de error
- Verifica que la API key tenga los permisos adecuados
- Asegúrate de que CORS esté configurado correctamente en tu servidor
Problemas de reproducción
Problemas de reproducción
Almacenamiento en búfer o tartamudeo:
- Reduce
bufferTimeAtTopQualitypara un inicio más rápido - Aumenta
stableBufferTimepara una reproducción más fluida - Verifica el ancho de banda y la latencia de la red
- Verifica la conectividad del CDN
- 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
Errores de autenticación
Errores de autenticación
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
- 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?- Correo electrónico: support@rhombus.com
- Comunidad: rhombus.community
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.