Skip to main content
Esta página fue traducida automáticamente. Si encuentra errores o tiene sugerencias, contáctenos.
Ejemplo de la comunidad - No soportado oficialmenteEsta guía se proporciona como un ejemplo de la comunidad y no está soportada oficialmente por Rhombus Systems. Aunque Rhombus no ofrece soporte oficial para respaldos en las instalaciones, esta guía muestra cómo implementar una solución de respaldo local usando la API de Rhombus.Usa esta implementación a tu discreción y asegúrate de que cumpla con los requisitos de respaldo y cumplimiento de tu organización.

Descripción general

Esta guía muestra cómo respaldar grabaciones de video y audio de cámaras Rhombus en dispositivos de almacenamiento local como almacenamiento conectado a la red (NAS), discos duros externos o servidores locales. La solución usa un script de Python que aprovecha la API de Rhombus para descargar grabaciones en paralelo a través de múltiples cámaras. La implementación admite:
  • Descargas multicámara con subprocesos (threading) para mejorar el rendimiento
  • Sincronización de video y audio con fusión automática
  • Programación flexible usando cron jobs o programadores de tareas
  • Rangos de tiempo personalizables para respaldar grabaciones históricas
  • Filtrado por ubicación para respaldar sitios específicos

Cómo funciona

1

Descubrimiento de cámaras

El script consulta la API de Rhombus para enumerar todas las cámaras de tu organización, filtrando por estado de conexión, ubicación o UUID de cámara específicos.
2

Autenticación de sesión

Se genera un token de sesión federada para cada cámara, que proporciona credenciales temporales (1 hora) para el acceso a los medios sin exponer tu API key en las URL de descarga.
3

Descarga de medios

Para cada cámara, el script:
  1. Solicita las URI de la lista de reproducción MPD (MPEG-DASH) para los flujos de video y audio
  2. Descarga el segmento de inicialización (seg_init.mp4)
  3. Descarga segmentos de medios secuenciales de 2 segundos
  4. Escribe los segmentos en el almacenamiento local
4

Fusión de audio y video

Si hay audio disponible, el script usa FFmpeg para fusionar los flujos de video y audio en un solo archivo, y luego limpia los archivos temporales.

Requisitos previos

Antes de implementar el respaldo local, asegúrate de tener:
  • Python 3.7 o superior instalado en tu sistema de respaldo
  • API key de Rhombus de la Consola de Rhombus
  • Conectividad de red a las cámaras Rhombus (LAN o WAN)
  • Espacio de almacenamiento suficiente en tu dispositivo de respaldo (estima de 1 a 2 GB por cámara por día)
  • FFmpeg instalado para la fusión de audio y video
Calcula tus requisitos de almacenamiento según la cantidad de cámaras, el período de retención y la calidad de grabación. Una cámara Rhombus típica genera aproximadamente de 40 a 60 GB de grabaciones por mes.

Instalación

Instalar el software requerido

Descargar el script de respaldo

Clona el repositorio de ejemplos de la API de Rhombus:

Verificar la instalación

Comprueba que todos los componentes estén instalados correctamente:

Configuración

Parámetros de línea de comandos

El script de respaldo admite los siguientes parámetros:
string
requerido
Tu API key de Rhombus para la autenticación. Requerido a menos que uses autenticación basada en certificados.Ejemplo: --api_key YOUR_API_KEY_HERE
integer
Marca de tiempo Unix epoch para la hora de inicio del respaldo. Por defecto es hace 1 hora si no se especifica.Ejemplo: --start_time 1693526400 (31 de agosto de 2023 a las 16:00:00 UTC)
integer
Duración en segundos a respaldar desde la hora de inicio. Por defecto es 3600 segundos (1 hora).Ejemplo: --duration 7200 (2 horas)
string
Filtra el respaldo a las cámaras de una ubicación específica. Útil para implementaciones de varios sitios.Ejemplo: --location_uuid location-uuid-here
string
Respalda las grabaciones de una sola cámara específica.Ejemplo: --camera_uuid camera-uuid-here
boolean
Usa direcciones WAN en lugar de LAN. Habilítalo cuando el sistema de respaldo esté fuera de tu red local.Ejemplo: --usewan
boolean
Habilita el registro de depuración para la resolución de problemas.Ejemplo: --debug
string
Ruta al certificado de cliente para autenticación mTLS (caso de uso avanzado).Ejemplo: --cert /path/to/cert.pem
string
Ruta a la clave privada para autenticación mTLS (caso de uso avanzado).Ejemplo: --private_key /path/to/key.pem

Ejemplos de uso

Respaldo básico (última hora)

Respalda la última hora de grabaciones de todas las cámaras:

Rango de tiempo específico

Respalda grabaciones de una ventana específica de 2 horas:

Respaldo de una sola cámara

Respalda las grabaciones de una cámara específica:

Respaldo por ubicación

Respalda todas las cámaras de una ubicación específica:

Acceso WAN (respaldo remoto)

Respalda desde fuera de tu red local:

Modo de depuración

Habilita el registro detallado para la resolución de problemas:

Archivos de salida

Los archivos de grabaciones descargados siguen esta convención de nomenclatura:
Ejemplos:
Tipos de archivo:
  • Archivos solo de video: formato .mp4 (cuando no hay audio disponible)
  • Archivos fusionados: formato .mp4 (video + audio combinados con FFmpeg)
  • Archivos temporales: formato .webm (se eliminan automáticamente después de la fusión)
El script limpia automáticamente los archivos temporales después de una fusión exitosa. Solo los archivos .mp4 finales permanecen en tu directorio de respaldo.

Programación de respaldos automatizados

Usando cron (Linux/macOS/NAS)

Crea respaldos automatizados usando cron jobs:
Referencia de horarios de cron:
  • 0 * * * * - Cada hora en el minuto 0
  • */30 * * * * - Cada 30 minutos
  • 0 */4 * * * - Cada 4 horas
  • 0 0 * * * - Diariamente a medianoche
  • 0 2 * * 0 - Semanalmente el domingo a las 2 a.m.

Usando el Programador de tareas (Windows)

Endpoints de la API utilizados

El script de respaldo interactúa con los siguientes endpoints de la API de Rhombus:

Enumeración de cámaras

Recupera la lista de cámaras con el estado de conexión y la información de ubicación.

Lista de pasarelas de audio

Obtiene los dispositivos de audio asociados con las cámaras.

Generación de token de sesión

Crea credenciales de sesión temporales (validez de 1 hora) para el acceso seguro a los medios.

URI de medios de video

Obtiene las plantillas de listas de reproducción MPD (MPEG-DASH) para los flujos de video.

URI de medios de audio

Obtiene las plantillas MPD para los flujos de audio.
Todas las llamadas a la API requieren autenticación usando el encabezado x-auth-scheme: api-token con tu API key, o autenticación mTLS basada en certificados.

Optimización del rendimiento

Configuración de subprocesos

El script usa el ThreadPoolExecutor de Python con un máximo de 4 workers concurrentes. Esto equilibra la velocidad de descarga con los límites de tasa de la API y los recursos del sistema. Para ajustar la cantidad de subprocesos, modifica el script:
Recomendaciones:
  • 2-4 workers: NAS estándar o sistemas de gama baja
  • 4-8 workers: NAS o servidores de alto rendimiento
  • 8-16 workers: servidores empresariales con alto ancho de banda
Aumentar la cantidad de subprocesos más allá de los valores recomendados puede activar la limitación de tasa o sobrecargar tu red/almacenamiento.

Consideraciones de almacenamiento

Calcular el espacio requerido:
Ejemplo:
  • 10 cámaras × 30 días × 1.5 GB = 450 GB requeridos
Prácticas recomendadas:
  • Mantén al menos un 20% de espacio libre en el dispositivo de respaldo
  • Implementa políticas de retención para eliminar grabaciones antiguas
  • Monitorea el uso del disco con regularidad
  • Usa compresión si necesitas archivado a largo plazo

Optimización de red

LAN vs WAN:
  • Modo LAN (predeterminado): descargas más rápidas, usa direcciones de red local
  • Modo WAN (--usewan): requerido para respaldos remotos, más lento pero accesible desde cualquier lugar
Requisitos de ancho de banda:
  • Aproximadamente de 2 a 4 Mbps por descarga de cámara concurrente
  • 4 workers = de 8 a 16 Mbps de ancho de banda recomendado

Retención y limpieza

Implementa una política de retención para administrar el uso del almacenamiento:

Resolución de problemas

Síntomas:
  • Errores 401 Unauthorized
  • Mensajes Invalid API key
Soluciones:
  1. Verifica que la API key sea correcta en la Consola de Rhombus
  2. Asegúrate de que la API key tenga permisos de acceso a las cámaras
  3. Comprueba que el encabezado x-auth-scheme esté configurado correctamente
  4. Regenera la API key si está comprometida
Síntomas:
  • Las descargas tardan más de lo esperado
  • Errores de tiempo de espera de red
Soluciones:
  1. Usa el modo LAN en lugar de WAN si respaldas localmente
  2. Reduce la cantidad de subprocesos en ThreadPoolExecutor
  3. Verifica el ancho de banda de la red y la conectividad de las cámaras
  4. Verifica la velocidad de escritura del dispositivo de almacenamiento
  5. Considera programar los respaldos durante las horas de menor actividad
Síntomas:
  • Permanecen archivos .webm temporales
  • No hay salida .mp4 fusionada
  • Mensajes de error de FFmpeg
Soluciones:
  1. Verifica que FFmpeg esté instalado y en el PATH
  2. Comprueba que tanto los archivos de video como los de audio se hayan descargado
  3. Asegúrate de tener suficiente espacio en disco para los archivos temporales
  4. Actualiza FFmpeg a la última versión
Síntomas:
  • El script informa 0 cámaras para respaldar
  • Lista de cámaras vacía
Soluciones:
  1. Verifica que las cámaras estén en línea en la Consola de Rhombus
  2. Comprueba el filtro de UUID de ubicación si se especificó
  3. Asegúrate de que la API key tenga acceso a las cámaras
  4. Revisa los filtros de estado de conexión de las cámaras en el script
Síntomas:
  • El script falla con errores de escritura
  • Mensajes No space left on device
Soluciones:
  1. Verifica el espacio disponible en disco: df -h
  2. Implementa una política de retención para eliminar grabaciones antiguas
  3. Reduce la duración o la frecuencia del respaldo
  4. Agrega capacidad de almacenamiento adicional
  5. Usa compresión para las grabaciones archivadas
Síntomas:
  • Los respaldos programados no se ejecutan
  • No se crean nuevos archivos de grabaciones
Soluciones:
  1. Verifica el estado del servicio cron: systemctl status cron
  2. Verifica la sintaxis del crontab: crontab -l
  3. Revisa los registros de cron: grep CRON /var/log/syslog
  4. Asegúrate de que las rutas del script sean absolutas
  5. Verifica los permisos del usuario

Prácticas recomendadas

Proteger las API keys

Nunca incluyas API keys directamente en los scripts. Usa variables de entorno o sistemas seguros de administración de claves. Rota las API keys con regularidad.

Monitorear los respaldos

Configura monitoreo y alertas para las fallas de respaldo. Revisa los registros con regularidad para asegurarte de que los respaldos se completen correctamente.

Probar las restauraciones

Prueba con regularidad la restauración de grabaciones desde los respaldos para verificar la integridad y confirmar que tu proceso de recuperación funciona.

Implementar retención

Define y aplica políticas de retención para administrar los costos de almacenamiento y cumplir con las regulaciones de protección de datos.

Usar redundancia

Considera múltiples ubicaciones de respaldo (en el sitio + fuera del sitio) para las grabaciones críticas. Implementa la regla de respaldo 3-2-1.

Documentar los procedimientos

Mantén documentación de tu configuración de respaldo, horarios y procedimientos de recuperación para tu equipo.

Consideraciones de seguridad

Sigue estas prácticas recomendadas de seguridad al implementar el respaldo local:

Protección de la API key

  1. Almacena de forma segura: usa variables de entorno o administradores de credenciales
  2. Restringe el acceso: limita los permisos de los archivos de los scripts que contienen claves
  3. Rota con regularidad: cambia las API keys periódicamente
  4. Audita el uso: monitorea la actividad de la API key en la Consola de Rhombus

Seguridad de red

  • Usa el modo LAN cuando sea posible para evitar la exposición a la WAN
  • Implementa reglas de firewall para restringir el acceso
  • Considera una VPN para escenarios de respaldo remoto
  • Habilita la autenticación mTLS para mayor seguridad

Seguridad del almacenamiento

  • Cifra los dispositivos de almacenamiento de respaldo
  • Restringe los permisos del sistema de archivos
  • Implementa controles de acceso en el NAS/servidor
  • Audita con regularidad quién tiene acceso a los archivos de respaldo

Consideraciones de cumplimiento

Al implementar el respaldo local, considera: Retención de datos:
  • Sigue las políticas de retención de datos de tu organización
  • Cumple con las regulaciones de la industria (HIPAA, GDPR, etc.)
  • Documenta los períodos de retención y los procedimientos de eliminación
Control de acceso:
  • Mantén registros de auditoría de quién accede a las grabaciones de respaldo
  • Implementa controles de acceso basados en roles
  • Documenta al personal autorizado
Protección de datos:
  • Cifra los datos en reposo y en tránsito
  • Implementa procedimientos de eliminación segura
  • Evaluaciones de seguridad periódicas

Configuración avanzada

Directorio de salida personalizado

Modifica el script para guardar los archivos en un directorio específico:

Notificaciones por correo electrónico

Agrega alertas por correo electrónico para la finalización o las fallas de los respaldos:

Integración de webhooks

Activa webhooks después de que se complete el respaldo:

Próximos pasos

Implementación de transmisión de video

Aprende a transmitir grabaciones en vivo desde cámaras Rhombus

Integración de webhooks

Configura webhooks para recibir eventos en tiempo real

Repositorio de GitHub

Accede al código fuente completo del script de respaldo

Comunidad de desarrolladores

Haz preguntas y comparte tu implementación

Recursos adicionales

Para preguntas, problemas o para compartir tu implementación de respaldo, visita la Comunidad de desarrolladores de Rhombus y publica en la sección Guides & Resources.
Última modificación el 8 de julio de 2026