A receita 100% livre é Ubuntu Server + ZoneMinder.
Ubuntu é o sistema operacional baseado em Linux mais conhecido que existe. A vantagem de usar a versão "Server" do Ubuntu é porque você não instala por padrão interface gráfica e outros tantos programas que não serão usados.
ZoneMinder é um conjunto integrado de aplicações que provê solução completa de vigilância e possibilita caputra, análise, gravação e monitoramente de qualquer CCTV ou câmera de segurança conectada a uma máquina baseada em Linux.
O ZoneMinder é muito interessante porque trabalha com o sistema "Motion Detection", ou seja, Sensor de Movimento, fazendo com que a gravação seja iniciada se algum movimento for detectado. Mais do que isso, permite que você crie e edite zonas de interesse, ou seja, somente se o movimento ocorrer dentro da zona de interesse é que a gravação será acionada.
Painel de edição de zonas. Somente o movimento na área verde acionará a gravação. |
- comprar câmeras IP com tecnologia PoE (Power over Ethernet), que em geral custam bem caro;
- comprar câmeras IP tradicionais e usar separadores e injetores para injetar a energia no cabo de rede e depois separá-la na outra ponta, para energizar a câmera.
Injetor e Separador PoE com plugue de energia P4 |
A maioria das câmeras IP possuem fonte de energia com plugue do tipo P4, que é o mesmo desses kits de injetor + separador PoE, então não deve haver problemas.
A grande questão ao usar esses injetores e separadores é que dificilmente a eletricidade chegará na outra ponta com a mesma intensidade e, em razão disso, câmeras que funcionam a 5V, por exemplo, provavelmente não ligarão. Isso ocorre porque a voltagem é muito pequena e a perda que ocorre nos injetores e por conta do próprio cabo de rede (Cat 5e) torna-se significante.
Para contornar esse problema, pode ser usada fonte de energia com voltagem regulável. Aumentando-se a voltagem da fonte, aumenta-se o "empurrão" com que a energia chega do outro lado e, assim, compensam-se as perdas pelo caminho, fazendo com que a câmera consiga a corrente (amperagem) suficiente.
Fonte de energia com voltagem regulável. Fornece até 1500mA. |
Em distâncias de 30 metros, por exemplo, consegui ligar câmeras que funcionam a 5V regulando a voltagem da fonte para 8,4V, para compensar as perdas. Em distâncias menores precisei ajustar para 7.5V e assim por diante.
Solução melhor será você emendar um regulador de tensão no separador. Ou seja, você corta os fios do separador que é ligado à câmera 5V, antes do conector, e insere um regulador de tensão, que converte tensões maiores (de 23V a 5.5V) para 5V, como por exemplo o BEC Turnigy 5V/3A, 6V/3A ou algum semelhante.
Sim, é uma "gambiarra", mas funciona! Com isso, você pode, por exemplo, deixar uma fonte de 12V, fazendo com que a distância seja superada, e o regulador de tensão se encarregará de reduzir a voltagem para 5V justamente antes de a corrente elétrica entrar na câmera.
Já as câmeras que funcionam a 12V em geral não apresentam esse problema porque a voltagem de 12V já dá um "empurrão" suficiente na eletricidade até o outro lado. Nesse caso, a própria fonte que vem com a câmera poderá ser usada. Não será preciso de fonte de mais de 12V.
Antes de usar suas câmeras no ZoneMinder, tenha certeza de elas estejam funcionando corretamente. Faça testes de uso pela interface web própria da câmera ou por endereços de acesso direto (por exemplo: http://192.168.0.25/video.cgi?user=usuario&pws=senha).
Para instalar e configurar o servidor que rodará o ZoneMinder, segue o passo a passo.
Baixe e instale o Ubuntu Server 12.04 LTS.
Antes de mais nada, atualize todo o sistema e reinicie a máquina:
sudo apt-get update && sudo apt-get dist-upgrade -y && sudo apt-get upgrade -y sudo init 6O ideal é que o servidor tenha IP fixo, para poder ser facilmente localizado dentro da rede e também para que possa ser mapeado no "Port Forwarding" do seu roteador, para que seja acessível pela internet externamente.
sudo nano /etc/network/interfacesMude a "primary network interface" para um endereço IP estático, por exemplo:
# The primary network interface auto eth0 iface eth0 inet static address 192.168.0.100 netmask 255.255.255.0 gateway 192.168.0.1 dns-nameservers 8.8.8.8 208.67.222.222 208.67.220.220
Reinicie novamente a máquina para as mudanças operarem efeito.
sudo init 6
Agora será necessário instalar o servidor web, servidor de banco de dados e php - alguns componentes do "LAMP stack" (Linux + Apache + MySQL + PHP).
sudo apt-get install mysql-server apache2 php5 libapache2-mod-php5
Pequeno ajuste para evitar mensagens de erro do apache:
echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn
Para usar conexão web segura (altamente recomendado):
sudo make-ssl-cert generate-default-snakeoil --force-overwrite sudo a2enmod ssl sudo a2ensite default-ssl sudo service apache2 restart
Abra um navegador e veja se o servidor apache está funcionando (http://ipdoservidor, por ex., http://192.168.0.19, ou, no caso de conexão segura, https://ipdoservidor etc.)
A última versão do ZoneMinder está disponível nesse repositório pessoal (PPA):
sudo apt-get install python-software-properties sudo add-apt-repository ppa:iconnor/zoneminder
Para instalar o ZoneMinder e o codec x264:
sudo apt-get update && sudo apt-get install zoneminder x264 libavcodec-extra-53
Durante a instalação, serão perguntadas questões sobre configuração do Nullmailer. Pode ignorar e pressionar "Enter" em todas, pois ao final vamos remover o Nullmailer (a versão dos repositórios do Ubuntu 12.04 LTS não trabalham com STARTTLS e qualquer servidor de email decente requer autenticação criptografada para funcionar).
Se aparecer a mensagem: invoke-rc.d: initscript zoneminder, action "status" failed., não se importe.
Aguarde mais um pouco que o zoneminder será iniciado em instantes:
Starting ZoneMinder: success
Agora adicione atraso para que o ZoneMinder somente seja iniciado durante o boot após o servidor MySQL já estar ativo. Adicione a linha "sleep 15" antes de zmfix -a, conforme demonstrado abaixo.
nano /etc/init.d/zoneminderstart() { echo -n "Starting $prog: " mkdir -p $RUNDIR && chown www-data:www-data $RUNDIR mkdir -p $TMPDIR && chown www-data:www-data $TMPDIR # Delay to allow MySQL to start before Zoneminder sleep 15 zmfix -a $command start
Crie link para o arquivo de configuração do zoneminder para que o apache saiba da existência dele:
sudo ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf
Adicione o usuário www-data ao grupo video:
sudo adduser www-data video
O Cambozola é um visualizador simples para fluxo jpeg de multipartes que geralmente são originados de webcams, enviando múltiplas imagens por segundo. O Cambozola é um substituto que exibe as imagens corretamente. O ZoneMinder pode fazer uso dele. Para instalá-lo:
wget http://www.andywilcock.com/code/cambozola/cambozola-latest.tar.gz tar zxvf cambozola-latest.tar.gz sudo cp -v cambozola-*/dist/cambozola.jar /usr/share/zoneminder sudo chown root:www-data /usr/share/zoneminder/cambozola.jar sudo chmod ug+x /usr/share/zoneminder/cambozola.jar rm -rf cambozola-*
Remova o nullmailer e instale o ssmtp:
sudo apt-get remove nullmailer sudo apt-get install ssmtp
Configure o ssmtp (faça as alterações necessárias ao seu email etc.):
nano /etc/ssmtp/ssmtp.conf # # Config file for sSMTP sendmail # # The person who gets all mail for userids < 1000 # Make this empty to disable rewriting. root=seuemail@gmail.com # The place where the mail goes. The actual machine name is required no # MX records are consulted. Commonly mailhosts are named mail.domain.com mailhub=smtp.gmail.com:587 AuthUser=seuemail@gmail.com AuthPass=suasenhadogmail UseTLS=YES UseSTARTTLS=YES # Where will the mail seem to come from? rewriteDomain=seudominio.com.br # The full hostname hostname=nomedohost.seudominio.com.br # Are users allowed to set their own From: address? # YES - Allow the user to specify their own From: address # NO - Use the system generated From: address FromLineOverride=YES
Instale o ntpd para manter o horário do servidor sempre atualizado:
sudo apt-get install ntp
Pronto, agora pode abrir o ZoneMinder no navegador e começar a configurá-lo:
http://ipdoservidor/zm ou https://ipdoservidor/zm
ATENÇÃO. Antes de mais nada:
Cique em "Options"
Desmarque: Check with zoneminder.com for updated versions (?)
Clique em "Save"
Clique na aba "Images"
Marque "Is the (optional) cambozola java streaming client installed (?)"
Clique "Save"
E, por último, habilite o sistema de autenticação por senha, para deixar seu ZoneMinder seguro.
Faça isso antes de adicionar qualquer câmera, caso contrário terá problemas e não conseguirá ver as imagens das câmeras em razão de problemas de autenticação:
Clique em "Options"
Marque a opção "OPT_USE_AUTH | Authenticate user logins to ZoneMinder (?)"
Clique "Save"
A senha padrão do usuário admin será admin.
Agora vá de novo em opções e na aba "Users" modifique a senha do admin e se for o caso crie outros usuários, definindo os níveis de permissão para cada um!
Se quiser exportar os eventos como vídeos mp4 (x264) de alta qualidade:
Clique em "Options" -> aba "Images"
Ajuste a opção FFMPEG_OUTPUT_OPTIONS para:
-r 25 -vcodec libx264 -threads 2 -b 2000k -minrate 800k -maxrate 5000k
Ajuste a opção FFMPEG_FORMATS para:
mp4* mpg mpeg wmv asf avi mov swf 3gp**
Reinicie o servidor:
sudo init 6
Boa sorte e não deixe de ler o FAQ do ZoneMinder para configurá-lo corretamente e resolver eventuais problemas.
Exemplo de câmera na opção de "Monitor". |
Depois que estiver tudo certo e funcionando, experimente os aplicativos que controlam o ZoneMinder pelo celular, como por exemplo o ZmView:
Fontes
Olá prezado,
ResponderExcluirestava lendo seu artigo, será que ele funcionaria num esquema de cameras com aparelho Pandelone?
O ZoneMinder funciona com câmeras locais (por exemplo câmeras ligadas a uma placa de captura instalada no servidor com o ZoneMinder) ou câmeras remotas, por exemplo câmeras IP. Não conheço o sistema Pandelone. Se você me der maiores informações sobre ele posso tentar ajudar.
ExcluirCOMO POSSO CONFIGURAR O ZONEMINDER PARA O DVR DA HDL TENDO 3 HL CADA UM COM 16 CAMERAS? VC PODE ME AJUDAR? MEU EMAIL ericbarrosmenezes@gmail.com
ResponderExcluirNão entendi. Se você já tem um DVR, para que pretende usar o ZoneMinder? Seu DVR já grava as imagens, certo?
ExcluirOla o meu zoneminder instalou certinho, eu consigo visualizar a camera pelo xawtv o problema q não consigo configurar no zoneminder, ate consigo, mas somente 1 camera. Tenho uma placa bt878 pelo menos é o que aparece na saida do comando lspci, esta placa possue 2 conector d-sub tipo vga e tenho um cabo com 16 saidas com conector coaxial. Configuro no zoneminder o "device Path" como /dev/video0 e o "device channel" como 0 ele pega 1 cameras, mas as outras não você ja passou por isso? detalhe ja tentei desde de o channel 1 ate o 31.
ResponderExcluirOlá. Eu só testei com câmeras IP. Então não consigo te ajudar, até porque não tenho placa para poder testar. Você pode tentar encontrar ajuda no fórum do ZoneMInder. Abs.
ExcluirO seu problema é que em todos os canais você vê a imagem da mesma câmera? Se for isso, experimente Desmarcar V4L_MULTI_BUFFER (em Opções >> config) e mudar CAPTURES_PER_FRAME para um valor como 2 ou 4 (Opções >> config). Qualquer coisa é só chamar: ezacchi@gmail.com Abç
ExcluirOla Unknown o problema que tenho a placa e um cabo com suporte para 9 cameras somente funciona no conector 16, se eu coloco a camera no conector 10 ou 15 nao funciona fica uma tela preta.
ExcluirOi Luiz Felipe. Parabéns pelo post. Muito bem explicado.
ResponderExcluirEu tenho uma dúvida:
Você sabe me dizer se esse injeto e separador da foto é bom? Digo isto, porque procurei na internet e achei adaptadores de até R$ 200 reais, enquanto que este da foto custa em torno de R$ 15,00.
Um abraço
Olá. Sim, os injetores da foto funcionaram 100% com câmeras de 12V. Para câmeras de menor voltagem (por exemplo 5V), a perda foi significativa e tive que aumentar a voltarem na fonte para compensar. Você poderia me passar o link desses adaptadores de R$ 200,00 para eu ver? Abs.
ExcluirOi Felipe, abaixo os adaptadores que comentei. Alguns possuem fonte interna e até proteção contra surto. No meu caso estas opções não importam, pois vou proteger com nobreak/filtro e usarei fontes próprias. Além disso, o custo não compensaria. A única justificativa que vejo para os preços serem tão diferentes é que talvez estes adaptadores consigam levar tantos os dados como a energia a distâncias maiores, como por exemplo 100 metros. Entretanto, me pergunto com o cabo upt cat5e conseguiria transportar a energia a esta distância dado a sua bitola. Por isso, fiquei na dúvida.
ExcluirSobre os adaptadores eles geralmente são de marcas famosas como IntelBras, D-link, Tp-Link e etc.
Um abraço
https://www.netcomputadores.com.br/p/tlpoe200-kit-adaptador-power-ethernet/10950
http://produto.mercadolivre.com.br/MLB-555390675-adaptador-poe-power-over-ethernet-5vdc12vdc-d-link-_JM
http://www.ibyte.com.br/injetor-poe-802-3af-intelbras-poe-200-g.html
Boa tarde, gostaria de saber se alguém já passou pelo seguinte problema e como resolve-lo, não consigo montar mais do que 6 câmeras ip, quando clico em "Montage" posso ter sei lá 20 câmeras que só monta 6.
ResponderExcluirServidor: SuperMicro
Processador: Intel(R) Xeon(R) CPU X5570 @ 2.93GHz com 15 núcleos
Memória: 16 GB
Por favor, será de grandiosa ajuda alguma dica de resolução.
Obrigado
Angelo Moreira
Pode ser bug. Eu tenho 7 câmeras e a 7 aparece o frame dela mas não aparece a imagem. Se for bug, tem que reportar no github/ZoneMinder.
ExcluirBoa Noite, eu queria uma ajuda, preciso configurar uma camera no zoneminder, porem ela é onvif, funciona em nvr, mas eu não consigo achar a forma certa de configurar. Caso possa me ajudar eu agradeço.
ResponderExcluirEstou iniciando a configuração de un zm tenho câmera ip da giga ( onvif), qual o endereço de host?
ResponderExcluirEstou iniciando a configuração de un zm tenho câmera ip da giga ( onvif), qual o endereço de host?
ResponderExcluirTive a mesma necessidade, cameras IP wifi, que usam o protocolo ONVIF. Para descobrir o feed list da camera, usei o XEOMA. Baixa, descompacta e executa na rede onde esta a camera. Ele vai encontrar, depois vc clica na camera e verá o endereço.
ExcluirNo meu caso foi
rtsp://192.168.x.x:554/onvif1
Tenho instalado o ZM que funciona perfeitamente...
ResponderExcluirConfigurei com detecção de movimento, mas acontece que esporadicamente aparece imagens de uma câmera no canal de outra, e isso gera um evento... isso me confica bastante pois gera uma série de eventos "falsos". Ex: quando fico vendo /dev/video0(0), depois de 30segundos (por exemplo) aparece 1segundo da câmera /dev/video0(1) e deposi volta para o /dev/video0(0). alguém já viu isso?? sabe resolver?
Estava a muito tempo procurando sobre cameras de segurança. Obrigada!
ResponderExcluir