plainnvr
PlainNVR es un NVR auto-alojado en Go/Python para grabación continua de cámaras RTSP con go2rtc, ONVIF, PTZ y app iOS nativa.
Ficha actualizada 28 sept 2026, 8:47 · upstream 28 sept 2026, 8:18 · release 0.1.3
Qué es plainnvr
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
PlainNVR es una solución de grabación de video para cámaras IP RTSP diseñada para funcionar en entornos auto-alojados. El sistema permite configuración por cámara con grabación continua o programada semanalmente, gestión de retención individual y limpieza automática de segmentos antiguos.
La arquitectura utiliza go2rtc v1.9.14 como capa intermedia que recibe streams RTSP y los retransmite mediante WebRTC (puerto 8555) y HLS para visualización en navegador con baja latencia. Incluye descubrimiento automático ONVIF, control PTZ con soporte de zoom hardware/digital, app nativa SwiftUI para iOS y puente opcional a Home Assistant.
Las grabaciones se almacenan como archivos MP4 timestamped bajo directorios por cámara con soporte de audio cuando está disponible en el stream RTSP. La interfaz web autenticada gestiona configuración de cámaras, reproducción de grabaciones (por segmentos), monitoreo en vivo y salud del sistema.
- Grabación continua de múltiples cámaras de seguridad RTSP con retención configurable por dispositivo
- Visualización en vivo baja latencia en navegador mediante WebRTC MSE o HLS para clientes móviles
- Integración con Home Assistant mediante streams HLS y snapshots para dashboards personalizados
- Control PTZ remoto de cámaras compatibles ONVIF desde interfaz web o app iOS nativa
- Copia streams RTSP sin re-encoding cuando es posible para máxima eficiencia de recursos
- go2rtc integrado con soporte WebRTC/HLS y gestión automática de procesos atascados
- Descubrimiento ONVIF completo incluyendo PTZ, zoom, home position y presets
- App nativa iOS con SwiftUI que soporta audio, PTZ y control de grabación
- Reproducción solo por segmentos individuales sin línea de tiempo unificada
- H.265 grabable pero no reproducible en todos los navegadores
- WebRTC requiere puerto 8555 abierto y configuración ICE candidates adecuada
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Recomendado Docker Compose con persistencia en ./data y ./recordings. Usar HTTP local sin proxy HTTPS; habilitar solo puerto 8555 TCP/UDP externo para WebRTC. Configurar NVR_GO2RTC_WEBRTC_CANDIDATES con IP pública si no es localhost. Para TrueNAS usar catálogo Community. Ajustar timeouts RTSP y grace periods según latencia de red.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Puede sustituir a
Relaciones detectadas por el análisis del repositorio y su categoría.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.