Diferente de soluções proprietárias, o projeto permite total controle sobre ingestão, processamento e distribuição de streams de vídeo, sendo adequado tanto para ambientes de produção quanto para experimentação com visão computacional.
Repositório: https://github.com/jaccon/open-cftv
Arquitetura do Sistema
A arquitetura do Open CFTV segue um modelo modular orientado a pipeline de vídeo, permitindo desacoplamento entre ingestão, processamento e consumo.
1. Camada de Ingestão
Responsável por estabelecer e manter conexões com dispositivos de captura.
Características:
- Suporte a RTSP (Real-Time Streaming Protocol)
- Compatibilidade com dispositivos ONVIF
- Gerenciamento de múltiplas conexões simultâneas
- Reconexão automática em caso de falha
Responsabilidades:
- Autenticação com dispositivos
- Controle de sessões de streaming
- Buffer inicial de frames
2. Pipeline de Processamento de Vídeo
Camada responsável pela manipulação dos streams em tempo real.
Funções principais:
- Decodificação de vídeo (ex: H.264/H.265)
- Extração de frames
- Transformações (resize, crop, encode)
- Encadeamento de etapas (pipeline)
Possibilidades técnicas:
- Integração com FFmpeg ou bibliotecas similares
- Inserção de módulos de análise (hooks)
- Processamento síncrono ou assíncrono
3. Camada de Controle (Orquestração)
Gerencia o ciclo de vida das câmeras e dos streams.
Funcionalidades:
- Cadastro e configuração de dispositivos
- Start/stop de streams
- Monitoramento de status (health check)
- Gerenciamento de recursos
Padrões possíveis:
- Controller centralizado
- Event-driven (pub/sub)
- Uso de filas para desacoplamento
4. Camada de Exposição (Delivery)
Responsável por disponibilizar os streams para consumo externo.
Opções de entrega:
- RTSP relay
- HLS (HTTP Live Streaming)
- WebRTC (baixa latência)
- APIs HTTP para controle e consulta
Consumidores típicos:
- Interfaces web (dashboards)
- Aplicações mobile
- Serviços externos
Funcionalidades Implementadas
Conectividade com Câmeras IP
- Integração com dispositivos compatíveis com RTSP
- Suporte a múltiplas fontes simultâneas
- Configuração de endpoints dinâmicos
Streaming em Tempo Real
- Transmissão contínua de vídeo
- Controle de latência via configuração de buffer
- Possibilidade de múltiplos consumidores por stream
Gerenciamento de Dispositivos
- Registro de câmeras
- Organização lógica (por ambiente ou grupo)
- Controle individual de streams
Base para Processamento Avançado
A arquitetura permite inclusão de módulos adicionais sem alteração do core:
- Detecção de movimento
- Classificação de objetos
- Reconhecimento facial (dependente de integração externa)
Extensibilidade
- Adição de novos protocolos de ingestão
- Customização do pipeline de vídeo
- Integração com serviços externos (APIs, mensageria)
Deploy e Infraestrutura
- Execução local (on-premise)
- Compatível com containers (ex: Docker)
- Possibilidade de distribuição em cloud
Funcionalidades em Roadmap
Detecção de Movimento
- Análise baseada em diferença de frames
- Geração de eventos
Integração com IA
- Uso de modelos de visão computacional (ex: YOLO, TensorFlow, ONNX)
- Inferência em tempo real ou batch
Sistema de Alertas
- Notificações baseadas em eventos
- Integração com webhooks, e-mail ou mensageria
Armazenamento de Vídeo
- Gravação contínua ou por evento
- Estratégias de retenção
- Integração com storage distribuído
Observabilidade
- Logs estruturados
- Métricas (uso de CPU, latência, throughput)
- Integração com ferramentas de monitoramento
Considerações de Escalabilidade
- Separação entre ingestão e processamento
- Uso de filas para desacoplamento (ex: Kafka, RabbitMQ)
- Horizontal scaling por stream ou por nó
- Balanceamento de carga para múltiplos consumidores
Casos de Uso
- Monitoramento residencial
- Ambientes corporativos
- Indústria e logística
- Projetos de smart cities
- Plataformas de visão computacional
Download
O OpenCFTV esta disponível para Linux, Windows e Mac OS, para baixar acesse
https://github.com/jaccon/open-cftv/releases/tag/v1.0.0
O Open CFTV fornece uma base técnica sólida para construção de soluções de vídeo monitoramento com alto grau de customização.
Sua arquitetura modular permite evolução incremental, suportando desde cenários simples até aplicações distribuídas com processamento inteligente de vídeo.
André Jaccon