Como instalar e configurar o ZoneMinder no Ubuntu – CFTV no Linux

Um assunto interessante mas ainda muito superficial na web é o funcionamento de câmeras de segurança (CFTV) em Linux.
Aqui posto um tutorial de como instalar câmeras utilizando a placa de captura PICO 2000 em Ubuntu.

HARDWARE:
Placa de captura PICO 2000 com Chipset BT8XX – suporte a 4 câmeras
ou
Geovision GV250 / GV800
A princípio deve funcionar com qualquer placa que tenha este Chipset pois é compatível com o driver nativo bttv, mas só testei neste modelo. A minha PICO2000 placa veio com o Chipset BT878A, com a especificação abaixo (impressa no Chip):
Fusion 878A
2587813Z
9T1000216
0941 TAIWAN
Link com foto: http://www.zoneminder.com/wiki/images/thumb/9/95/Pico2000_1.jpg/200px-Pico2000_1.jpg
Fiz um teste anterior com uma placa genérica GV-800 GEOVISION, a mais popular para uso em Windows, porém ela trabalha com um driver proprietário de codificação de vídeo, compatível a princípio somente com Windows.

SOFTWARE:
Ubuntu 10.10 (testei com sucesso tanto em 32 quanto 64 bits) e ZoneMinder 1.24.2 ( http://zoneminder.com/ ), uma solução WEB para CFTV robusta com muitos recursos e com a última versão estável nativa nos repositórios do Ubuntu.

INSTALAÇÃO:
Este tutorial pressupõe uma instalação nova do Ubuntu.
Instale o Ubuntu e faça todas as atualizações.

SOMENTE PARA GV250 / GV800:
Abra um terminal e digite:
sudo modprobe -r bttv
sudo modprobe bttv card=150
sudo chmod 666 /dev/video0

Para verificar se a placa foi corretamente detectada, abra um terminal e digite:
sudo dmesg | grep bttv

O resultado deve ser semelhante ao meu:
[ 4.843499] bttv: driver version 0.9.18 loaded
[ 4.843501] bttv: using 8 buffers with 2080k (520 pages) each for capture
[ 4.843640] bttv: Bt8xx card found (0).
[ 4.843655] bttv 0000:03:02.0: PCI INT A -> GSI 23 (level, low) -> IRQ 23
[ 4.843664] bttv0: Bt878 (rev 17) at 0000:03:02.0, irq: 23, latency: 32, mmio: 0xfdffe000
[ 4.843677] bttv0: using: *** UNKNOWN/GENERIC *** [card=0,autodetected]
[ 4.843679] IRQ 23/bttv0: IRQF_DISABLED is not guaranteed on shared IRQs
[ 4.843703] bttv0: gpio: en=00000000, out=00000000 in=00f36fff [init]
[ 20.920016] bttv0: tuner type unset
[ 20.920088] bttv0: registered device video0
[ 20.920114] bttv0: registered device vbi0

Aqui a informação importante é “video0″, que é o endereço da placa para identificar as câmeras. Cada placa no computador deve receber um endereço similar a este.

Então ainda no terminal execute:
sudo aptitude install zoneminder

Ele vai instalar o ZoneMinder e vários outros pacotes, incluindo o MySql. Siga as instruções da tela.
Depois execute:
sudo ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf
Para criar um link simbólico a fim do Apache reconhecer o caminho do ZoneMinder. Então reiniciamos o Apache:
sudo /etc/init.d/apache2 force-reload
E vamos configurar o banco de dados MySql. Execute na sequência:
sudo mysql -u root -p < /usr/share/zoneminder/db/zm_create.sql
(Digite a senha informada na instalação do MySql)
mysql -u root -p
(Digite novamente a senha informada na instalação do MySql)
grant select,insert,update,delete on zm.* to ‘zmuser’@localhost identified by ‘zmpass';
(deve retornar Query OK, 0 rows affected (0.00 sec))
flush privileges;
quit
sudo chmod 4755 /usr/bin/zmfix
zmfix -a
sudo adduser www-data video
Agora vamos editar o sysctl:
sudo gedit /etc/sysctl.conf
Acrescente no final do arquivo a linha:
kernel.shmall = 134217728
kernel.shmmax = 134217728
Salve e feche o GEdit.

SOMENTE PARA GV250 / GV800:
Edite o arquivo /etc/init.d/zoneminder
coloque
sudo modprobe -r bttv
sudo modprobe bttv card=150
sudo chmod 666 /dev/video0
antes da linha “zmfix -a” e reinicie o computador.

Testando:
Abra o browser e digite:

http://localhost/zm

Deve aparecer a tela de console.

Câmeras:
Agora devemos configurar as câmeras. Supondo que apenas uma placa PICO 2000 está no computador, e configurada para /dev/video0. Ela deve possuir 4 “canais”, numerados de 0 a 3. Na minha placa o canal zero é do conector mais afastado da placa mãe, e assim na sequência.
Vamos fazer a configuração básica supondo utilizar as câmeras para gravação.

Configurar Zoneminder
*********************
Acessando o console: localmente http://localhost/zm ou remotamente http://IPSERVIDOR/zm

Clicar em ADICIONAR MONITOR

Aba GENERAL
Nome = Escolher um nome para a camera
Função = Monitor (só exibe vídeo) / Record (grava) / Mocord (grava com detecção de movimento)
Habilitado = marcar

Aba ORIGEM
Device Path = /dev/video0 (conforme foi detectado no dmesg)
Capture Method = Video for Linux 1
Canal do Dispositivo = (0 a 3 dependendo da câmera conectada)
Formato do Dispositivo = NTSC
Paleta de Captura = RGB24
Largura de Captura (pixels) = 320
Altura da Captura (pixels) = 240
Preserve Aspect Ratio = True

Clicar em Salvar.
Para iniciar o serviço, clicar em “Parado” que está no título (ZoneMinder Console – Parado – vX.XX.X). Deve abrir uma janela com “iniciar” selecionado, basta clicar em “Aplicar”.

Se a informação em “origem” permanecer vermelha, algum parâmetro deve ser alterado.
Para verificar a camera, clicar no “nome”.

Para visualizar todas em uma mesma tela, clique em “montagem”.

Dicas:
- Para passar o ZoneMinder quase todo para português (br): OPTIONS > SYSTEM > LANG_DEFAULT (passar para pt_br).
- O ZoneMider possui muitas configurações. Explore em “Opções”.
- Utilize uma partição separada ou outro disco para gravar os vídeos, para evitar problemas de superlotação na partição raiz. Siga a dica mais abaixo.
- Quando se em várias câmeras compartilhadas em uma placa, pode-se enfrentar:
Imagem de uma câmera aparecendo em outra
Câmera sem imagem
Imagens misturadas
As soluções para estes problemas variam. Você pode tentar cada uma das opções abaixo. lembre-se de reiniciar o zoneminder após cada mudança.
Desmarque V4L_MULTI_BUFFER (em Opções >> config)
Mude CAPTURES_PER_FRAME para um valor como 2 ou 4 (Opções >> config)
Use Video For Linux version 1 para cada câmera (found in Origem >> Origem >> Capture Method)

Software para testar as cameras:
********************************
aptitude install xawtv

Para detectar as câmeras:
xawtv -hwscan

Atalho para acessar o modo “montagem” diretamente da raiz do Apache:
*****************************************************************
Criar um arquivo index.php em /var/www com o seguinte conteúdo:

http://IPDOSERVIDOR/zm/?view=montage&group=0

Configurando para gravar em outro disco ou partição:
************************************************
Essa medida é importante para evitar problemas com o sistema operacional em função de falta de espaço em disco.

Interrompa a execução do ZoneMinder:
/etc/init.d/zoneminder stop

Configure um outro disco ou partição para montar no boot e crie as seguintes pastas: (No exemplo, montei o disco na pasta /cameras)
mkdir /cameras/events
mkdir /cameras/images
mkdir /cameras/temp

Mova a pasta antiga:
mv /var/cache/zoneminder /var/cache/zoneminderOLD

Crie o link simbólico:
ln -s /cameras /var/cache/zoneminder

Dê as permissões:
chown -R www-data.www-data /cameras
chown -R www-data.www-data /var/cache/zoneminder

Reinicie o ZoneMinder:
/etc/init.d/zoneminder start

Trocar a porta do acesso Web – Apache
***********************************
Muitas vezes o seu ISP (Internet Service Provider – Provedor de Internet), como a NET, bloqueia o acesso externo pela porta 80. Para trocar a porta padrão basta alterar a porta original (80) para a porta desejada em dois arquivos:
/etc/apache2/sites-enabled/000-default
Linha:

e
/etc/apache2/ports.conf
Linhas:
NameVirtualHost *:80
Listen 80
Após, execute:
/etc/init.d/apache2 restart
Reinicie o ZoneMinder e acesse a partir do novo endereço (com exemplo da porta 8000):
http://localhost:8000/zm ou http://IPDOSERVIDOR:8000/zm

Senha de acesso
**************
Em função de ser “aberto” para a web, é interessante o uso de usuário e senha no Zoneminder. É bem simples e com recursos interessantes.
Acesse o console:

http://IPDOSERVIDOR/zm

Clique em “OPÇÕES”
Selecione a opção “OPT_USE_AUTH”
Clique em SALVAR e reinicie o Zoneminder.
O usuário padrão é “admin”, e a senha “admin”. Após reiniciar o Zoneminder, acesse novamente “OPÇÕES”, vai ter surgido a aba “USUÁRIOS”.
Ali pode-se facilmente criar vários usuários determinando o que cada um poderá fazer no Zoneminder e quais câmeras poderá visualizar.

Incluir Câmera HTTP remota (PTZ) (via LAN ou Wireless)
*****************************************************
Acessando o console: localmente http://localhost/zm ou remotamentehttp://IPDOSERVIDOR/zm

Clicar em ADICIONAR MONITOR

Aba GENERAL
Nome = Escolher um nome para a camera
Tipo de Origem = Remoto
Função = Monitor (só exibe vídeo) / Record (grava) / Mocord (grava com detecção de movimento)
Habilitado = marcar

Aba ORIGEM
Remote Protocol = HTTP
Remote Method = Simple
Nome do host remoto = usuario:senha@IPDOHOST
Porta do host remoto = porta configurada no host
Caminho do host remoto = exemplo: /videostream.cgi (vai depender do modelo da câmera)
Cores de imagem remota = cor 24 bits
Largura de Captura (pixels) = 320
Altura da Captura (pixels) = 240
Preserve Aspect Ratio = True

Clicar em Salvar.

 

Retirado de : http://cristianogd.blogspot.com.br/2010/10/cftv-em-linux-ubuntu-cameras-de.html 

Be Sociable, Share!

You must be logged in to post a comment.