Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

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

Ver códigoProblemas y ayudaRepositorio ↗
00

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.

CASOS DE USO
  • 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
PUNTOS DESTACADOS
  • 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
PRECAUCIONES
  • 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
01

Perfil de infraestructura

Estimación inicial derivada del repositorio y de los servicios detectados.

CPU4 vCPUrecomendación inicial
MEMORIA2 GBRAM estimada
DISCO10 GBalmacenamiento base
COMPLEJIDADmediumnivel de operación
02

Despliegue detectado

Qué señales reales de instalación hemos encontrado.

Listo para automatizar

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.

✓Dockerfile
✓Compose
✓One-click
03

Stack y dependencias

Componentes inferidos a partir de manifests, configuración y documentación.

FRAMEWORKS
GoPython
SERVICIOS
No detectados
BASES DE DATOS
No detectadas
PUERTOS
8787
05

Puede sustituir a

Relaciones detectadas por el análisis del repositorio y su categoría.

06

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.