Home.Security
Tem piada como é que uma simples webcam com 10 anos, um pc com Linux e dois programas conseguem fazer!
Ok, vou passar a explicar, há dias la estive eu a instalar a minha webcam USB em linux (Creative webcam Pro qualquer coisa assim), Depois de a ter posto em funcionamento (gqcam) la me deixei tentar por um programa chamado "motion".
Esta aplicação consegue tornar qualquer computador numa arma eficiente no que diz respeito à vídeo vigilância, tudo isto com uma simples webcam! Imaginem, que tem um cachopo com poucos meses e todos os dias uma ama vêm a sua casa para ocupar-se do bébé. Ao colocar a sua webcam, o computador automaticamente tira fotogramas quando sente movimento, apenas movimento! Logo, imaginem o que é chegar à casa e ter todo o dia da ama gravado no vosso pc :P
Isto de criar fotogramas ao movimento permite muitos outros usos, como segurança de lojas, locais, casas etc...
E como instalar este motion? Bem, nada de mais fácil, alias, acho que o mais difícil foi mesmo andar a procura dos drivers da minha webcam, porque comparativamente, a instalação do motion foi simplesmente trivial:
ruben@aioros:~$ sudo apt-get install motion
Depois da instalação, basta configurar o ficheiro de configuração em: /etc/motion/motion.conf e alterar alguns valores. Este passo apenas vai servir para que possamos ver a criação dos fotogramas em tempo real (por defeito está no /var/lib , uma pasta não muito fácil de aceder como simples utilizador).
target_dir /home/ruben/webcam
hehehe, pois é, o motion também tem destas coisas (verificar se a firewall permite ligações no porto 8000)
E com esta opção ligamos a webcam para o mundo :)
Depois de executar o motion (basta teclar motion), ele irá começar o seu trabalho, detectando os movimentos em frente à webcam. E não só, como também ligamos a webcam para o mundo, está neste momento a produzir imagens para http://localhost:8000 :P
O problema agora, não são as imagens, mas sim a quantidade de imagens que o motion está a produzir em poucos minutos. E que tal produzir um vídeo disto?
Os mais cuscos terão certamente reparado que no ficheiro de configuração do motion, existe uma opção para fazer vídeos. No entanto, já tentei e o resultado não é assim nada de especial. Para já deu erros até meter nojo, e claro a qualidade final não era conveniente.
Lembrei-me do programa que é usado para fazer codificação de vídeos (divx, xvid etc..) em Linux, o Mencoder. Para o instalar basta mais uma vez aptegar:
ruben@aioros:~$ sudo apt-get install mencoder
(talvez peça para instalar algumas dependências, está tudo bem, podem seguir em frente à confiança!). Uma vez instalado, basta correr o mencoder para produzir o vídeo que está na nossa pasta:
ruben@aioros:~$ mencoder mf:///home/ruben/webcam/*.jpg -mf w=320:h=240:fps=10:type=jpg -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -o /home/ruben/video.avi
[mf] search expr: /home/ruben/webcam/*.jpg
[mf] number of files: 1170 (4680)
VIDEO: [IJPG] 320x240 24bpp 10.000 fps 0.0 kbps ( 0.0 kbyte/s)
[V] filefmt:16 fourcc:0x47504A49 size:320x240 fps:10.00 ftime:=0.1000
Pos: 117.0s 1170f ( 0%) 81.34fps Trem: 0min 0mb A-V:0.000 [568:0]]
Video stream: 568.771 kbit/s (71096 B/s) size: 8318275 bytes 117.000 secs 1170 frames
Se tudo correr bem, deverão ver algo parecido com isto. Caso contrário algo no processo deve ter falhado... Por vezes, uma leitura mais calma ajuda em entender e solucionar os problemas.
Continuando, agora que temos o motion e o mencoder em funcionamento, e que tal fazer um script que irá ser executado de 24 em 24 horas construindo assim o vídeo do dia?
ruben@aioros:~/scripts$ nano makeDaillyVideo.sh
rm -fr /home/ruben/webcam/$data
mkdir /home/ruben/webcam/$data
mv -f /home/ruben/webcam/*.jpg /home/ruben/webcam/$data
mencoder mf:///home/ruben/webcam/$data/*.jpg -mf w=320:h=240:fps=10:type=jpg -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -o /home/ruben/$data.avi
sudo rm -fr /home/ruben/webcam/$data
O que faz este script? Muito simples, primeiro cria uma variável ($data) com ANO+MES+DIA, depois apaga uma pasta e todo o seu conteúdo caso já existisse (isso pode acontecer se o script for abortado), depois volta a criar a mesma pasta (agora é de vez !), move todas as imagens disponíveis na pasta do motion para uma pasta temporária.
Uma vez este processo de pastas e ficheiros concluída, o script faz uma chamada ao mencoder e produz o vídeo final que irá encontrar-se na home do utilizador com o ficheiro .avi
A última linha remove todas as imagens produzidas pelo motion que estavam dentro da pasta temporária (incluindo a pasta temporária).