Motion como sistema de Vigilância e Segurança

De MediaWiki do Campus São José
Revisão de 16h01min de 11 de novembro de 2016 por Joao.ms (discussão | contribs)
Ir para navegação Ir para pesquisar

O Motion

Logomarca do aplicativo


Site Oficial (antigo): http://lavrsen.dk/foswiki/bin/view/Motion/WebHome
Repositório no GitHub: https://github.com/Motion-Project/motion
Site oficial: https://motion-project.github.io/

O Motion é um programa que monitora o sinais de vídeo. Ele é capaz de detectar se uma parte significante da imagem mudou, em outras palavras, ele pode detectar movimento.
O projeto está em processo de migração do site http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome para o GitHub.
Informações mais recente de atividades no projeto pode ser encontradas na página de notícias.
A documentação para a versão mais recente do código pode ser encontrada aqui. Informações sobre as versões pode ser encontrada aqui.


Situação

Quando pensa-se em organizar um sistema de monitoramento, a questão do hardware é geralmente a que mais leva a atenção, e deve, já um sistema de monitoramento de possuir dispositivos com resoluções de vídeo suficientes para realizar identificações de rostos, placas, etc. Com isso, nem sempre pensa-se em qual software realizará a captura de imagens e pode-se acabar comprando uma solução cara e com limitações, e a sugestão apontada aqui é usar o Motion para isso.


Algumas informações técnicas

Sistema operacional utilizado: Debian 8 (Jessie) 64 bits
Versão do Motion: 3.4.1-1 (Disponível aqui.
Versão do kernel Linux: 3.16.0-4
Número de núcleos de processamento: 8 núcleos
Quantidade de memória RAM: 8 gigabytes
Resoluções e marca dos dispositivos de vídeos testados: 640x480, 1280x800 (Axis), 1280x960 (Axis) e 2592x1944 (Axis)
Servidor virtualizado

Bug na versão 4.0.1

Devido à maior quantidade de recursos, optou-se por utilizar a versão 3.4.1 do software Motion. Essa versão estava disponível no repositório oficial do projeto Debian Testing, sendo a mesma substituída pela versão 4.0.1. A versão mais nova, no entanto, possui um bug que faz com que o ffmpeg não opere corretamente. O bug ocorre após a detecção de movimento, quando a gravação de vídeo fosse interrompida, e o que acontece é um mero congelamento de imagem. Isso faz com que o arquivo de vídeo seja gerado mesmo sem movimento detectado, ocasionando assim o aumento no arquivo de vídeo sem necessidade.


Instalação

Antes de começar os procedimentos, remova quaisquer pacotes de codec conflitantes, do tipo x264, libx264-dev, libavcodec, libavcodec, libavfilter, libavfilter, libavresample, libavutil, libpostproc, libswresample, libswscale, ffmpeg.


root@motion:~# apt purge x264, libx264-dev, libavcodec, libavcodec, libavfilter, libavfilter, libavresample, libavutil, libpostproc, libswresample, libswscale, ffmpeg

1. Compilando e instalando o libx264:

root@motion:~# git clone git://git.videolan.org/x264.git
root@motion:~# cd x264
root@motion:~# ./configure --enable-shared --disable-opencl
root@motion:~# make
root@motion:~# make install && ldconfig

2. Compilando e instalando o FFMPEG com suporte ao x264:

root@motion:~# git clone git://git.ffmpeg.org/ffmpeg
root@motion:~# cd ffmpeg
root@motion:~# ./configure --arch=armhf --target-os=linux --enable-gpl --enable-libx264 --enable-nonfree --enable-shared
root@motion:~# make
root@motion:~# make install && ldconfig

3. Instalado a biblioteca jpeg:

root@motion:~# apt install libjpeg-dev

4. Compilando e instalando o motion:

root@motion:~# apt install dh-autoreconf
root@motion:~# wget http://200.135.37.107/nuvem/index.php/s/AlTDgN70W1D1xXo/download
root@motion:~# unzip download
root@motion:~# cd motion-3.4.1
root@motion:~# autoreconf
root@motion:~# ./configure
root@motion:~# make
root@motion:~# make install && ldconfig


Configurando o Motion

Após instalar o Motion, é possível acessar os arquivos de configuração do mesmo em /usr/local/etc/motion.

root@motion:~# cd /usr/local/etc/motion

Após isso, basta modificar o nome do arquivo motion-dist.conf para motion.conf e criar um arquivo chamado camera1.conf:

root@motion:/usr/local/etc/motion# mv motion-dist.conf motion.conf
root@motion:/usr/local/etc/motion# echo "# Camera 1" > camera1.conf

Agora, o arquivo "motion.conf" será modificado. O arquivo "camera1.conf" é um arquivo de configuração auxiliar, todas as opções que forem especificadas nele, substituirão a do arquivo de configuração original.
Segue a lista das principais opções do arquivo de configuração:

videodevice /dev/videoX É o parâmetro o qual se especifica o dispositivo de vídeo a ser utilizado, geralmente USB. A identificação do dispositivo de vídeo geralmente varia entre /dev/video0, /dev/video1 ...etc.
rotate 0 Nesse parâmetro, pode ser definida em quantos graus se deseja rotacionar a imagem.
width 640 Nesse parâmetro é definida a largura da imagem.
height 480 Nesse parâmetro é definida a altura da imagem.
framerate 30 Nesse parâmetro, define-se o tanto de quadros que serão apresentado em um segundo. (FPS)
netcam_url valor Esse parâmetro é destinado à câmeras IPs. O formato da URL pode ser http://exemplo, ftp://exemplo, mjpeg://exemplo, rtsp://exemplo ou file://exemplo.