NevextNevext

Repositório

nevext / camera-ai

Pra que serve

O autor não escreveu uma descrição. O README, mais abaixo, costuma explicar.

Em números

  • estrelas

    0

    As curtidas do GitHub: quanta gente marcou que gostou.

  • forks

    0

    Cópias que outras pessoas fizeram pra mexer à vontade.

  • issues abertas

    0

    Pedidos e problemas que alguém avisou e ainda não foram resolvidos.

  • última mudança

    hoje

    Quando o código mudou pela última vez. Recente quer dizer projeto vivo.

Feito com

  • JavaScript 67%
  • CSS 17%
  • HTML 15%
  • PowerShell 2%

Licença MIT

É ela que diz o que você pode fazer com o código: usar, copiar, mudar ou vender.

Levar pro seu computador

Três jeitos, do mais fácil pro mais "de verdade".

O que tem dentro

A pasta principal do projeto, começando pelo que vale a pena entender.

Ver os outros 4

Últimas versões salvas

Cada versão salva é um commit: uma foto do projeto com uma frase dizendo o que mudou.

Está bem apresentado?

O que um repositório precisa pra quem chega entender e conseguir usar.

5 de 9 itens

Dá pra melhorar

  • Tem uma descrição curta no GitHubNo GitHub, na engrenagem ao lado de "About", escreva uma frase do que o projeto faz.
  • Tem uma demonstraçãoPublique o projeto (GitHub Pages ou Vercel, de graça) ou grave um vídeo curto, e coloque o link. Ver funcionando convence mais que o código.
  • As versões foram salvas ao longo do tempoSalve versões (commits) a cada passo, e não tudo de uma vez no fim. O histórico é a prova de que foi você que construiu.
  • Tem tópicos (tags) no GitHubAdicione tópicos como "react" ou "jogo" no About do GitHub. Eles fazem o projeto ser achado.
  • Tem um README que apresenta o projeto
  • O README explica como rodar
  • Tem uma licença
  • Tem um .gitignore
  • Não guarda pastas de dependências nem senhas

README

Escrito pelo autor, quase sempre em inglês. É onde ele explica o projeto e como instalar.

camera-ai

Controle e visualização de uma câmera IP de duas lentes (XiongMai / app iCSee), com interface mobile, detecção de pessoas/animais por IA e sem depender do app nem da nuvem do fabricante. Tudo roda local, na sua rede.

status

O que é

A câmera (modelo XM232_X6S-WEQ-H_8M, 2 lentes de 4MP = "8M") só tem o app iCSee e um "Web Viewer" antigo de plugin que não funciona em navegador moderno. Este projeto fala ONVIF + RTSP direto com ela e entrega:

  • Vídeo ao vivo no navegador (PC e celular), escolhendo Câmera 1 / Câmera 2 / Ambas (as duas lentes vêm empilhadas num frame só; a interface recorta cada uma).
  • Foto, gravação local, ouvir o microfone, ajustes de imagem (brilho/contraste/saturação/ nitidez, WDR, dia/noite) — tudo via ONVIF.
  • Detecção por IA no próprio navegador (TensorFlow.js + COCO-SSD): quadrados verde = pessoa, laranja = animal, vermelho = incerto. Nenhuma imagem sai do aparelho.
  • Otimização automática de FPS/bitrate (a câmera vinha travada em 12fps).

Interface no estilo do nevext.com.br (fonte Geist, azul #2563eb, claro/escuro automático).

Como funciona (arquitetura)

  Câmera XM ──ONVIF(8899)/RTSP(554)──►  server/proxy.mjs (Node, sem dependências)
                                              │  traduz p/ HTTP simples + MJPEG (via ffmpeg)
                                              ▼
                         Interface web (index.html + assets/)  ──►  navegador (PC/celular)
                                              │
                                   IA de detecção roda aqui, no navegador
  • Navegador não toca RTSP. O proxy usa o ffmpeg para converter RTSP → MJPEG e serve tudo (UI + API) na porta 8787.
  • A interface e a API ficam na mesma origem, então funciona igual no PC e no celular.

A câmera (dados confirmados)

  • IP na rede: 192.168.0.41 (login ONVIF admin, senha vazia — padrão de fábrica).
  • 1 fonte de vídeo 3072×2048 com as 2 lentes empilhadas (cada uma ~3072×1024).
  • Portas abertas: RTSP 554, ONVIF 8899, DVRIP 34567, HTTP 80.
  • Detalhes técnicos e como tudo foi descoberto: docs/DESCOBERTA.md.

Como rodar

Pré-requisitos: Node 18+ e o ffmpeg (baixe uma vez):

powershell -ExecutionPolicy Bypass -File server/get-ffmpeg.ps1   # baixa ffmpeg p/ server/bin
node server/proxy.mjs                                             # sobe tudo na porta 8787

Abrir:

  • PC: http://127.0.0.1:8787
  • Celular (mesma Wi-Fi): http://192.168.0.33:8787
    • Se não abrir, liberar a porta no Firewall (uma vez, PowerShell admin): New-NetFirewallRule -DisplayName "camera-ai" -Direction Inbound -Protocol TCP -LocalPort 8787 -Action Allow -Profile Private

Login: a interface tenta admin/senha vazia e padrões XM sozinha. Trocou a senha no app? Ponha no ⚙. Gravações caem em server/gravacoes/. A IA baixa o modelo na 1ª vez (precisa de internet uma vez; depois roda offline).

Estrutura

index.html            interface (player)
assets/app.css        estilo (tema nevext, Geist)
assets/app.js         lógica da UI (lentes, qualidade, PTZ, imagem, áudio, foto, gravar)
assets/detect.js      detecção por IA (COCO-SSD) no navegador
server/proxy.mjs      proxy ONVIF/RTSP + servidor web (porta 8787)
server/get-ffmpeg.ps1 baixa o ffmpeg estático p/ server/bin
docs/DESCOBERTA.md    como a câmera foi investigada e tudo que achamos
FEATURES.md           o que está pronto e o que falta

Próximos passos

Ver FEATURES.md — inclui o empacotamento em APK e as funcionalidades que faltam.

Comentários da comunidade

Usou, travou em algo, achou uma dica? Conta aqui pra quem vier depois.

0/1000

Ninguém comentou ainda. Seja o primeiro.