Pular para o conteúdo principal

ZoneMinder, uma solução gratuita para CFTV - Linux


Hoje em dia uma necessidade nas empresas é um bom sistema de Circuito Fechado de TeleVisão (CFTV) e opções no mercado não faltam.
O grande problema é que os bons sistemas são proprietários e caros, ou são baratos e ineficazes.
Na empresa tinhamos a segunda opção, um sistema que não custou muito, porém era um sistema que rodava em cima de Windows XP e que na grande maioria das vezes travava e nos deixava na mão com as gravações.
Como já tinhamoes em mãos um computador comprado especialmente para este fim e também uma placa de captura para 16 câmeras, resolvi buscar uma solução alternativa ao Windows XP e encontrei o Zoneminder que para minha alegria é open source e roda em qualquer ambiente Unix Like.
Com a escolha do software parti para ler as documentações e ver como fazer a instalação. Para minha surpresa encontrei vários documentos explicando como instalar, porém eram todos documentos antigos que não era a realidade de um sistema mais atual.
A escolha da distribuição linux foi rápida, optei pelo Debian 6 (Squeeze) por ser um sistema que sou familiarizado e por ser muito estavel.
Vou pular a parte da instalação do Debian pois não é este o objetivo, portanto estou partindo diretamente para a instalaçào e configuração do Zoneminder, então vamos ao que interessa:

A primeira coisa a ser feita após a instalação do Debian 6 é verificar os sources do apt. Pode ser que apenas o seu CDROM esteja nas sources então o que vamos fazer é remover o CD e colocar apenas os repositórios oficiais do Debian Squeeze, já que tudo o que precisamos tem lá.
O seu sources.list pode ser como o que segue abaixo:
cat /etc/apt/sources.list

deb http://security.debian.org/ squeeze/updates main contrib non-freedeb-src http://security.debian.org/ squeeze/updates main contrib non-free
deb ftp://ftp.br.debian.org/debian/ squeeze main contrib non-freedeb-src http://ftp.br.debian.org/debian/ squeeze main contrib non-free

Você pode editar com  sources.list com seu editor preferido (no meu caso, o nano).
Após editar esta na hora de atualizar o APT, atualizar o sistema e instalar os primeiros pacotes.
Os primeiros pacotes serão para montar o famoso LAMP (Linux + Apache + MySQL + PHP), em seguida alguns pacotes para manipular vídeos e imagens e também alguns outros pacotes de dependencias do Zoneminder. Ao final é a instalação do Zoneminder propriamente dito.
apt-get update

apt-get upgrade

apt-get install apache2 php5 php5-mysql mysql-server libapache2-mod-auth-mysql

apt-get install ffmpeg libarchive-tar-perl libarchive-zip-perl libdate-manip-perl

apt-get install libjpeg62 libmime-perl libstdc++6 libwww-perl zlib1g libdevice-serialport-perl

apt-get install zoneminder

Após concluir os passos acima já temos instalado tudo o que precisamos, basta apenas terminar algumas configurações.
Se você acessar http://ip-do-servidor/ já verá uma mensagem do Apache, mas se acessar http://ip-do-servidor/zm/ (diretório padrão do ZoneMinder) ainda não conseguirá acessá-lo, então vamos arrumar isto.
Para fazê-lo, basta criar um link simbólico e reiniciar o apache. Vamos aproveitar e criar o usuário www-data fazendo parte do grupo video
ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf

/etc/init.d/apache2 force-reload

adduser www-data video

Em vários tutoriais que encontrei na internet diziam que seria necessário editar o arquivo /etc/modprobe.d/bttv.conf com as configurações da minha placa GV800. Isto seria necessário para que o Kernel reconhecesse a placa e levantar os módulos corretamente. O fato é que no Debian 6 (ou Debian Squeeze) a placa já é reconhecida automaticamente, pois ele usa um Kernel 2.6.30 ou ainda mais atual.
Como não precisamos editar o arquivo bttv.conf podemos seguir para o próximo passo que é editar o arquivo /etc/sysctl.conf
Neste arquivo iremos aumentar a quantidade de memória para o sistema. Este passo se faz necessário principalmente se você for utilizar muitas câmeras e com resoluções mais altas (como 640×480).
Para isto abra o arquivo com seu editor preferido e acrescente as duas linhas no final do arquivo:
kernel.shmall = 167772160

kernel.shmmax = 268435456

Apenas lembrando que para que estas mudanças tenha efeito é preciso reiniciar o sistema.

Para a visualização de vídeos o Zoneminder utiliza uma sobreposição de imagens jpegs que roda por padrão no navegador Mozilla Firefox. Caso você utilize algum outro navegador para ver os seus vídeos ele também irá funcionar, porém com uma taxa de FPS muito baixa. Para resolver este problema, podemos utilizar o Cambozola que é um aplicativo java pequeno e leve que resolve definitivamente o problema.
wget http://www.charliemouse.com:8080/code/cambozola/cambozola-latest.tar.gz

tar -zxvf cambozola-latest.tar.gz

cd cambozola-0.92/dist/

cp cambozola.jar /usr/share/zoneminder/

chmod +x /usr/share/zoneminder/cambozola.jar


Após este passo já terminamos os passos na linha de comando, agora vamos partir para o navegador. Digite http://ip-do-servidor/zm/ no seu navegador (recomendo o uso do Firefox) para poder acessar seu servidor ZoneMinder.
A primeira coisa que recomendo fazer é adicionar um pouco de segurança.
Para isto vá em options e marque a opção OPT_USE_AUTH. Com isto será necessário entrar com usuário e senha (usuario admin e senha admin é o padrão). Se preferir pode mudar LANG_DEFAULT para pt_BR.
Recomendo também ir na aba Config e desmarcar a opção V4L_MULTI_BUFFER, pois em alguns casos pode ocorrer uma mistura de imagens de diferentes câmeras e só demarcar esta opção já irá resolver o problema.
Agora vá na aba Images e marque a opção OPT_CAMBOZOLA para que o sistema saiba que instalamos o cambozola e que ele poderá ser usado.
Depois de fazer estas configurações salve e reinicie o sistema. É possível reiniciar pela própria interface.
Agora você irá reparar que esta conectado no servidor, mas não tem nenhuma câmera para visualizar. Isto ocorre porque no Zoneminder você irá adicionar as câmeras que tem, uma a uma. Você poderá adicionar as câmeras da placa de captura ou mesmo câmeras IPs.
Para adicionar basta clicar no botão “Add New Monitor” e irá aparecer uma tela como a que segue abaixo.
Em Name coloque o nome que quiser para a câmera.
Em Source Type selecione Local, pois é uma câmera que está chegando pela placa.
Em Function selecione Modect, esta opção fará com que seja gravado somente quando houver movimentos. Isto irá salvar bastante espaço em seu HD :)
Nesta tela você ainda pode configurar a quantidade máxima de FPS. Isto pode ser útil caso seu processador esteja trabalhando em 100% e você queira aliviar a carga de processamento uma vez que menos FPS é uma menor quantidade de informações para processar.
Na aba source coloque a resolução da sua câmera e se ela trabalha em NTSC ou PAL como mostro na imagem abaixo.
ZoneMinder Monitor
As informações Device Path e Devide Channel são os “endereços” físicos de cada uma das câmeras. Segue abaixo uma lista para simplificar e mostrar qual câmera esta em qual endereço:
Camera 1 -> /dev/video0 channel 0
Camera 2 -> /dev/video1 channel 0
Camera 3 -> /dev/video2 channel 0
Camera 4 -> /dev/video3 channel 0
Camera 5 -> /dev/video0 channel 1
Camera 6 -> /dev/video1 channel 1
Camera 7 -> /dev/video2 channel 1
Camera 8 -> /dev/video3 channel 1
Camera 9 -> /dev/video0 channel 2
Camera 10 -> /dev/video1 channel 2
Camera 11 -> /dev/video2 channel 2
Camera 12 -> /dev/video3 channel 2
Camera 13 -> /dev/video0 channel 3
Camera 14 -> /dev/video1 channel 3
Camera 15 -> /dev/video2 channel 3
Camera 16 -> /dev/video3 channel 3
Após estas configurações já é possível visualizar a imagem da câmera clicando no nome. Ela irá aparecer como na imagem abaixo.

Agora você pode adicionar as suas outras câmeras (incluindo câmeras IP) e terá um CFTV rodando.
Em um outro post irei descrever como “tunar” a sua câmera para uma gravação mais precisa.

Comentários

  1. Obrigado pelo tutorial!
    Estou com uma instalação pra fazer, tenho dúvidas sobre qual sistema seria melhor: dvr ou pc mesmo.

    Uma vantagem do DVR é que já vem tudo pronto, mas não sei se os recursos que um sistema em PC me ofereceria seriam os mesmos do DVR. Sabe me dizer??

    ResponderExcluir
  2. Amigo se for utilizar apenas as cameras ips dispensa a placa de captura nesse processo de instalação ai acima qual etapa não irei usar.
    Obrigado pela Ajuda.

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

Resetar Senhas do DVR Stand Alone

Convertendo de Aba-Track -> Serial -> Wiegand

Confira passo-a-passo para Configurar ma câmera IP - Vivotek