Zoneminder no Ubuntu ou Debian – Serviço de Câmeras Web (cftv)

Standard

Bom, vamos falar sobre a instalação do Zoneminder e algumas dicas e truques para o mesmo funcionar adequadamente.

Como tudo começou:

Meu chefe me passou a url do programa dizendo que seria uma boa solução para o controle das imagens geradas pelas câmeras internas. Pediu pra eu testar.

Equipamentos:

Placa de Captura com chipset bttv. Como já havia visto uma funcionando, indiquei a Pico2000. Que pode ser encontrada em média de 50 reais no mercado livre (http://www.mercadolivre.com.br).

Computador com slot pci, e os cabos para ligar as câmeras a placa.

E o sistema operacional usado será o Linux, distribuição Ubuntu.

A escolha da distribuição pesou devido ao fato de que todos os desktops da empresa rodarem Ubuntu, então pra não ficar inventando moda resolvi usar a mesma coisa para padronizar. E provavelmente o servidor que vamos colocar em produção vai ser Debian, não vai haver grandes mudanças na hora da instalação para produção.

Vamos ao que interessa.

ara fazer a verificação se o sistema detectou a placa, faça o seguinte procedimento:

# dmesg | grep bttv

Deve aparecer a seguinte saída:

Com isso já guarde as seguintes informações:

[ 82.180611] bttv0: registered device video0
[ 82.180792] bttv0: registered device vbi0

Instalações

Agora vamos a parte boa, instalar o que é necessário.

Vamos fazer a instalação por partes:

1. Apache, MySQL e PHP:

# apt-get update
# apt-get install apache2 mysql-server mysql-client php5-mysql php5-gd php5-cgi php-pear libgd-tools php5-dev libmysql++-dev libmysqlclient15-dev

Depois dessa instalação, já vai estar com seu servidor web pronto para o serviço.

2. Codecs de vídeo:

# apt-get update
# apt-get install libavcodec-dev libavcodec1d libavformat-dev libavformat1d libavutil-dev libavutil1d ffmpeg libavifile-0.7c2

3. As demais dependências:

# apt-get update
# apt-get install g++ make netpbm libssl-dev libjpeg62-dev libmime-perl libwww-perl libarchive-tar-perl libdate-manip-perl libarchive-zip-perl libmime-lite-perl libdbi-perl libdbd-mysql-perl libpcre3-dev libgnutls-dev

Feito isso seu sistema já vai estar pronto para receber o Zoneminder, após claro a pequena compilação dele.

Instalação do Zoneminder

Tendo instalado todos os programas anteriores, essa parte é mais simples pois provavelmente não vai dar erro agora.

Baixe o source pelo site:

# wget -c http://www2.zoneminder.com/downloads/ZoneMinder-1.23.2.tar.gz
# tar czf ZoneMinder-1.23.2.tar.gz
# cd ZoneMinder-1.23.2

Agora vem o pulo do gato, se você fizer sem alterar nada vai dar erro no make, se quiser testar, fique a vontade, se quiser fazer o trem funcionar de primeira edite o arquivo src/zm_mpeg.cpp e na linha 280 altere de:

#if ZM_FFMPEG_SVN

Para:

#if !ZM_FFMPEG_SVN

Isso mesmo, só adicionar um “!” ali depois do if.

Agora proceda com a instalação:

# ./configure –with-webdir=/var/www/zm –with-cgidir=/usr/lib/cgi-bin –with-webuser=www-data –with-webgroup=www-data
# make
# make install

Agora vamos usar o script para criar o banco de dados:

# mysql mysql < db/zm_create.sql -p

E agora logar no mysql para dar permissão ao usuário criado:

# mysql -u root -p
mysql> grant select,insert,update,delete on zm.* to ‘zmuser’@localhost identified by ‘zmpass’;
mysql> flush privileges;

Prontinho, prontinho, prontinho…

Script de inicialização

Crie um arquivo chamado zoneminder e coloque dentro dele as seguintes linhas para a criação de um script de inicialização “automágica”:

#!/bin/sh
# description: Control ZoneMinder as a Service
# chkconfig: 2345 35 15

# Source function library.
#. /etc/rc.d/init.d/functions

prog=ZoneMinder
ZM_PATH_BIN=”/usr/bin”
command=`which zmpkg.pl`

start() {
echo -n “Starting $prog: ”
$command start
RETVAL=$?
[ $RETVAL = 0 ] && echo success
[ $RETVAL != 0 ] && echo failure
echo
[ $RETVAL = 0 ] && touch /var/lock/zm
return $RETVAL
}
stop() {
echo -n $”Stopping $prog: ”
#
# Why is this status check being done?
# as $command stop returns 1 if zoneminder
# is stopped, which will result in
# this returning 1, which will stuff
# dpkg when it tries to stop zoneminder before
# uninstalling . . .
#

result=`$command status`
if [ ! “$result” = “running” ]; then
echo “Zoneminder already stopped”
echo
RETVAL=0
else
$command stop
RETVAL=$?
[ $RETVAL = 0 ] && echo success
[ $RETVAL != 0 ] && echo failure
echo
[ $RETVAL = 0 ] && rm -f /var/lock/zm
fi
}
status() {
result=`$command status`
if [ “$result” = “running” ]; then
echo “ZoneMinder is running”
RETVAL=0
else
echo “ZoneMinder is stopped”
RETVAL=1
fi
}

case “$1” in
‘start’)
start
;;
‘stop’)
stop
;;
‘restart’ | ‘force-reload’)
stop
start
;;
‘status’)
status
;;
*)
echo “Usage: $0 { start | stop | restart | status }”
RETVAL=1
;;
esac
exit $RETVAL

De acordo com sua distribuição, coloque o script no local adequado, dê permissão 775 para ele ser executado e reinicie sua máquina para fazer o teste.

Se for no Ubuntu também:

– copie para o diretório /etc/init.d
– faça os links simbólicos:

# ln -s /etc/init.d/zoneminder /etc/rc0.d/K20zoneminder
# ln -s /etc/init.d/zoneminder /etc/rc1.d/K20zoneminder
# ln -s /etc/init.d/zoneminder /etc/rc2.d/S20zoneminder
# ln -s /etc/init.d/zoneminder /etc/rc3.d/S20zoneminder
# ln -s /etc/init.d/zoneminder /etc/rc4.d/S20zoneminder
# ln -s /etc/init.d/zoneminder /etc/rc5.d/S20zoneminder
# ln -s /etc/init.d/zoneminder /etc/rc6.d/K20zoneminder

– pronto, ele irá iniciar sozinho.

Depois de feito todo o procedimento anterior, verifique se o apache está rodando, se sim acesse:

http://localhost/zm

Agora o resto é simples, para as configurações iniciais só clicar em Opções (ou Options se ele não pegar o idioma pt-br). Como na imagem abaixo:

Na primeira tela você pode escolher a linguagem da forma que achar melhor:

Na aba caminhos você edita onde deseja salvar os arquivos capturados:

Na aba imagens você escolhe como deseja que seja feito o streaming de vídeo e também o caminho do ffmpeg.

O resto das opções são bem intuitivas, basta ler. Isso vou deixar com você.

Dicas e conclusão

Dicas (Onde eu tropecei):

  • Verificar o padrão da câmera se é PALM ou NTSC.
  • Colocar pra gravar os dados em outra partição separada.
  • Ler os manuais

Conclusões

Esse artigo foi escrito com a finalidade de dar uma luz pra quem esta ralando nessa área e não quer mexer com esses GEOVISION. Então está aí pra mostrar o caminho, o resto depende de cada um. Qualquer dúvida, estamos aqui pra saná-la.

fonte: http://www.vivaolinux.com.br/artigo/Ubuntu-+-Zoneminder-=-Solucao-Livre-para-CFTV/?pagina=1