voltar aos projetos

Ocelo — hub de câmeras IP

em teste com câmeras reais · 203 commits e 399 testes em 16 dias · −68% de disco

Hub de câmeras IP multimarca em .NET 10, com vídeo ao vivo em WebRTC/HLS, gravação contínua, retenção inteligente e API com webhooks para outros sistemas.

  • .NET 10
  • ASP.NET Core
  • React
  • TypeScript
  • SQLite
  • MediaMTX
  • WebRTC
  • ONVIF

Um VMS leve: conecta câmeras IP de várias marcas, mostra tudo ao vivo, grava continuamente e entrega vídeo para outros sistemas por API. Está em pré-produção, testado com câmeras reais de três marcas. O código é privado.

Vídeo

  • O servidor nunca decodifica vídeo: uma única conexão por câmera, com um motor de mídia (MediaMTX) supervisionado e reconciliado pela própria API. A escolha foi justificada com medições.
  • Ao vivo em menos de 1 segundo: mosaico em WebRTC, com queda automática para HLS e suporte a H.265.
  • Gravação que envelhece: nos trechos antigos, um processo mexe só na estrutura do arquivo fMP4 e mantém apenas os quadros-chave, sem recodificar e sem buracos na linha do tempo. Em laboratório, o trecho caiu para cerca de 4% do tamanho. A retenção é definida por câmera e pelo espaço em disco.

Câmeras e integração

  • Drivers por capacidade: ONVIF (descoberta e fluxos), Hikvision, Dahua, Intelbras e RTSP genérico. Marcas com padrão conhecido viram configuração, não código.
  • Hub de integração: API versionada com OpenAPI, páginas para embutir vídeo em outros sistemas, links temporários assinados, chaves com permissões por câmera, webhooks assinados e métricas para Prometheus.

Operação

  • Monitores de gravação parada, motor de mídia fora do ar, relógio das câmeras e disco. A retenção pausa se o relógio parecer errado, para não apagar gravação por engano.
  • Exportação de vídeo com manifesto assinado e trilha de auditoria encadeada, login por pessoa e backup cifrado.
  • Roda como serviço do Windows, com instalador e atualização com volta automática. São 399 testes, incluindo testes de arquitetura e respostas reais de câmeras usadas como fixtures.

// cv.pdf

Baixar currículo

Antes do download, me conta quem é você. Assim eu sei com quem retomar a conversa.

Seus dados não são compartilhados com ninguém e podem ser apagados quando você pedir.