Esta página fue traducida automáticamente. Si encuentra errores o tiene sugerencias, contáctenos.
Descripción general
Las cámaras Rhombus exponen varias formas de acceder al contenido de video a través de la API pública:- Transmisión en vivo para monitoreo en tiempo real, incrustada como un iframe alojado por Rhombus
- Manifiestos HLS (
.m3u8) para reproducción directa en tu propio reproductor - Imágenes en miniatura para paneles y vistas previas rápidas
- Capturas de fotogramas en cualquier marca de tiempo histórica
Obtención de miniaturas de cámara
Todas las cámaras Rhombus suben automáticamente miniaturas. Son ideales para paneles, interfaces de monitoreo y verificaciones rápidas de estado.Endpoint de miniaturas
Recupera las miniaturas de la cámara mediante una solicitud GET a:Todos los endpoints de
media.rhombussystems.com usan la misma autenticación que la API principal — incluye los encabezados x-auth-scheme y x-auth-apikey en cada solicitud.cameraUuid y el mediaRegion de una cámara, llama a POST /api/camera/getMinimalCameraStateList. La respuesta contiene un arreglo cameraStates; cada entrada tiene los campos uuid y mediaRegion.
Implementación básica
cURL
cURL
Obtener fotogramas en momentos específicos
Para obtener una imagen JPEG en un momento histórico específico, llama aPOST /api/video/getExactFrameUri. La respuesta contiene un frameUri — haz una solicitud GET a ese URI con los mismos encabezados de autenticación para descargar el fotograma.
downscaleFactor, jpgQuality y permyriadCropX/permyriadCropY/permyriadCropWidth/permyriadCropHeight (cada uno en milésimas de las dimensiones de la imagen, donde 10000 = 100%).
Transmisión de video en vivo
Rhombus ofrece dos formas de reproducir video en vivo en tu aplicación:- Incrustar el reproductor Rhombus como iframe — la opción más sencilla; los analíticos y eventos de la línea de tiempo se renderizan automáticamente.
- Reproducir el manifiesto HLS directamente — usa tu propio reproductor (
hls.js, Safari nativo, etc.) para tener control total de la UI.
POST /api/camera/createSharedLiveVideoStream. La respuesta contiene ambas URLs:
| Campo | Descripción |
|---|---|
sharedLiveVideoStreamUrl | URL del reproductor alojado por Rhombus — incrústala en un iframe |
sharedLiveM3U8StreamUrl | Manifiesto HLS (.m3u8) — reprodúcelo directamente con cualquier reproductor HLS |
sharedLiveVideoStreamUuid | UUID del recurso compartido creado, útil para revocarlo más tarde |
Incrustar transmisiones compartidas como iframes (Recomendado)
Crea una transmisión compartida y luego coloca la URL devuelta dentro de un iframe. El reproductor del iframe maneja la autenticación a través de la propia URL, por lo que no se necesita una API key en el navegador.Ejemplo de componente React
Parámetros de URL para control mejorado
Personaliza el reproductor incrustado mediante parámetros de URL. Todos los parámetros pueden establecerse entrue o false:
| Parámetro | Descripción |
|---|---|
disableautoplay | Activa o desactiva la reproducción automática al cargar |
hideevents | Activa o desactiva la línea de tiempo y los eventos relacionados |
realtime | Activa o desactiva la transmisión en tiempo real por defecto |
showheader | Activa o desactiva los botones de zoom y transmisión arriba |
showfooter | Activa o desactiva el nombre de la cámara y la marca de tiempo abajo |
lowRes | Fuerza baja resolución en la transmisión de video |
performanceMode | Fuerza el modo de rendimiento permitiendo el uso de GPU |
t | Marca de tiempo (milisegundos epoch) donde debe iniciar el video |
Uso de parámetros
Anexa los parámetros a la URL de la transmisión compartida:https://{{url}}/?{{variable}}=true&{{variable}}=false
Ejemplo:
Uso en React con parámetros
Incrustar transmisiones HLS directamente
Si quieres renderizar video en vivo en tu propio reproductor en lugar del iframe alojado, usasharedLiveM3U8StreamUrl de la misma respuesta de createSharedLiveVideoStream. El manifiesto es un .m3u8 HLS estándar y está firmado con un token en la URL — no se necesita el encabezado x-auth-apikey para obtenerlo.
La URL HLS está limitada a una sola organización y tiene un tiempo de expiración. Trátala como una credencial y no la expongas en páginas públicas sin una política de expiración.
createSharedLiveVideoStream desde un servidor que controles y pasa al navegador únicamente la sharedLiveM3U8StreamUrl (o sharedLiveVideoStreamUrl) resultante. Mantén la API key fuera del código del cliente.
Acceso a video grabado
La descarga de grabaciones como un archivo MP4 único no está expuesta como una operación de la API pública. La capa de almacenamiento de Rhombus sirve el video grabado como una secuencia de segmentos de medios en lugar de un MP4 pre-renderizado, por lo que producir un clip descargable requiere obtener y concatenar los segmentos del lado del cliente. La forma admitida de hacerlo es la Rhombus CLI:POST /api/event/getPolicyAlerts — el endpoint anterior getPolicyAlertsV2 está obsoleto.
Ejemplo de implementación completa
Un componente React que admite tanto vista de miniatura como transmisión en vivo:Ejemplos de uso
Mejores prácticas
Optimización del rendimiento
- Caché de miniaturas: Almacena las miniaturas en caché del lado del cliente y refréscalas en un intervalo razonable en lugar de hacer polling continuo.
- Carga diferida: Carga el contenido de video solo cuando sea necesario o cuando esté en el viewport.
- Selección de calidad: Usa
lowRes=trueen el reproductor del iframe para cuadrículas y paneles.
Consideraciones de seguridad
- Mantén las API keys del lado del servidor: Nunca expongas
x-auth-apikeyen código del navegador. Llama acreateSharedLiveVideoStreamdesde tu backend y pasa al cliente solo las URLs resultantes. - Solo HTTPS: Usa siempre HTTPS para las llamadas a la API y para las URLs de transmisiones compartidas.
- Limita el alcance de las claves: Restringe cada API key a los permisos mínimos necesarios.
- Establece expiraciones para las transmisiones compartidas: Pasa
expirationTimeSecsal crear transmisiones compartidas para que las URLs no sobrevivan al caso de uso.
Manejo de errores
Accesibilidad
Solución de problemas
La miniatura no carga- Verifica que
cameraUuidymediaRegionprovengan de una respuesta reciente degetMinimalCameraStateList—mediaRegionpuede cambiar. - Comprueba que la API key tenga acceso a la ubicación de la cámara.
- Confirma que la cámara esté en línea (campo
connectionStatusen la respuesta de estado de la cámara).
- Verifica la conectividad de red hacia
*.rhombussystems.com. - Para reproducción HLS, confirma que el navegador soporte HLS de forma nativa o que
hls.jsesté cargado. - Revisa las reglas de firewall/proxy — los proxies corporativos suelen bloquear las solicitudes de segmentos de medios.
- Pasa
lowRes=truepara clientes con ancho de banda limitado. - Verifica el ancho de banda de subida en el sitio de la cámara.
Próximos pasos
Reproductor de video
Crea un reproductor de video personalizado con reproducción HLS y controles de línea de tiempo.
Respaldo de grabaciones
Descarga y archiva grabaciones de cámara en almacenamiento local.