You are on page 1of 10

DroidMinder Monitoramento de cmeras de vigilncia atravs de um telefone celular Android

Michel Vinicius de Melo Euzbio Sistemas de Telecomunicaes, Instituto Federal de Santa Catarina michel.euzebio@gmail.com Emerson Ribeiro de Mello Doutor, Sistemas de Telecomunicaes, Instituto Federal de Santa Catarina mello@ifsc.edu.br

Resumo- Os sistemas vigilncia, formados por circuitos internos de TV, no so mais exclusidade de grandes empresas e esto cada vez mais presentes em residncias e condomnios. O Zoneminder um projeto de cdigo aberto que roda em um computador pessoal e permite ao usurio monitorar cmeras de vigilncia atravs de um navegador web. Os telefones inteligentes esto mais populares e podem realizar tarefas que antes s se imaginava realizar em computadores de mesa. Este trabalho apresenta o DroidMinder, um aplicativo para dispostivos mveis munidos do sistema Android, que permite monitorar cmeras de vigilncia conectadas a um servidor Zoneminder.

Palavras-chave: Sistema de vigilncia. Android. Zoneminder.

Abstract- Surveillance systems are no longer exclusive to big companies and today it is possible to see their use even in residences. Zoneminder is an open source project which provides a complete surveillance solution running in a personal computer where users can use web browser to monitor cameras. Smartphones are increasingly present and they can perform tasks that previously only imagined perform on desktop computers. This paper presents DroidMinder an application for Android devices that allows to monitor surveillance cameras connected to a Zoneminder server.

Keywords: Surveillance system. Android. Zoneminder.

Introduo Sistemas de vigilncia com cmeras esto cada vez mais onipresentes. O aumento

na adoo de tais sistemas fora inuenciada por aspectos sociais e principalmente tecnolgicos. H pouco tempo atrs era necessrio adquirir equipamentos especcos para atuar na rea (gravadores digitais de vdeo, cmeras A/V, etc), cujo custo era elevado. Atualmente possvel montar um sistema de vigilncia de baixo custo fazendo uso de um computador pessoal munido de uma placa de captura de vdeo e mais um conjunto de cmeras, podendo ser at mesmo webcams. Os principais softwares para este tipo de sistema permitem inclusive que o usurio monitore as cmeras atravs da Internet.

Bolsista CNPq

O mercado de dispositivos mveis est cada vez mais investindo nos telefones inteligentes (smartphones), os quais permitem navegar na Internet, ler emails, etc. atravs da rede 3G de telefonia celular e tambm atravs de redes sem o Wi-Fi (IEEE, 2007). Tais telefones so caracterizados pelo poder de processamento, quantidade de memria, uma tela grande e principalmente por um sistema operacional mais elaborado capaz de gerenciar aplicaes semelhantes com aquelas destinadas aos computadores pessoais. Diante dos diversos sistemas operacionais o Android (OPEN HANDSET ALLIANCE, 2008) tem-se mostrado como uma opo interessante. Trata-se de uma plataforma de cdigo aberto que fornece alm do sistema operacional um kit de desenvolvimento (Software Development Kit SDK) que traz facilidades no desenvolvimento de aplicaes para este sistema. Diferentemente dos primeiros telefones capazes de navegar na Internet atravs do protocolo WAP (OPEN MOBILE ALLIANCE, 1998), os telefones inteligentes possuem navegadores capazes de exibir pginas web que no foram especicamente desenhadas para estes. Contudo, a navegao por tais pginas um pouco incmoda devido ao tamanho e resoluo da tela o que leva ao usurio recorrer a ferramentas de zoom. Alguns softwares para vigilncia disponibilizam uma interface web especca para telefone celular. Estas interfaces so projetadas para apresentar uma menor quantidade de informao para se adequar s telas pequenas e de baixa resoluo. Porm, tais interfaces ainda assim no oferecem uma boa experincia de uso, quando comparadas com a usabilidade das aplicaes nativas dos telefones inteligentes. Neste trabalho apresentado o DroidMinder, um aplicativo de cdigo aberto para dispositivos Android 1.6 ou superior, que permite monitorar pela Internet cmeras conectadas a um sistema de vigilncia baseado no Zoneminder (ZONEMINDER, 2004). O presente artigo est organizado da seguinte forma. Na Seo 2 so descritas as principais caractersticas do aplicativo Zoneminder. Na Seo 3 introduzido o sistema operacional Android e seu kit de desenvolvimento de software (SDK). Na Seo 4 apresentada a aplicao DroidMinder, desenvolvida neste trabalho. Na Seo 5 so apresentados os trabalhos relacionados. Por m, na Seo 6 so apresentadas as concluses e as possibilidade de trabalhos futuros.

Zoneminder

O ZoneMinder (ZONEMINDER, 2004) uma aplicao de cdigo aberto para monitoramento de cmeras de vigilncia que pode ser usado com cmeras conectadas a uma placa de captura de vdeo, cmeras USB ou mesmo cmeras IP. Prov suporte captura, anlise e gravao de imagens oriundas de uma ou mais cmeras, alm de implementar protocolos da indstria para movimentar cmeras Pan/Tilt/Zoom (PTZ). Concebido de forma de distribuda e fazendo uso das linguagens C++, Perl e PHP, o Zoneminder possui um agente centralizador, denominado servidor, o qual agrupa agentes de monitorao (p.e. cmeras) e a interao com o usurio se faz atravs de agentes clientes (aplicao de usurio). Como agente cliente o ZoneMinder apresenta uma pgina web que permite ao usurio adicionar cmeras, acompanhar ao vivo as imagens que esto sendo geradas e tambm ativar a gravao dessas imagens.

(a) Interface padro

(b) Interface para dispositivos mveis

Figura 1 Interfaces de usurio do Zoneminder

Alm da interface web padro, o Zoneminder apresenta uma interface web simplicada para dispositivos mveis. Esta interface s permite o monitoramento das cmeras previamente cadastradas. A Figura 1a apresenta a interface web padro e a Figura 1b apresenta a interface simplicada para dispositivos mveis.

Figura 2 Delimitao das reas que sero monitoradas

Entre as caractersticas do ZoneMinder, a mais interessante a deteco de movimentos. Isto permite disparar a gravao automtica do vdeo mediante alguma movimentao no ambiente monitorado, garantindo um menor consumo de recursos, no caso espao em disco. Tambm permite o envio de alertas por e-mail ou via mensagens de texto por celular (SMS). A Figura 2 ilustra a interface para seleo de zonas de monitoramento em uma determinada cmera. Neste exemplo existem trs reas hachuradas, corredor, entrada e mesas. possvel denir a ao que ser tomada em cada rea. Por exemplo, seria interessante disparar um alarme sempre que algum movimento for detectado na rea entrada. Por outro lado, movimentos na rea mesas nunca deveria disparar um alarme por movimento.

Os vdeos gerados pelas cmeras so transmitidos como uxos M-JPEG (ITU, 2005) sobre o protocolo HTTP. No caso, o servidor HTTP envia uma sequncia de quadros JPEG e cabe ao navegador web reproduzi-los. Muitos dos atuais navegadores para computadores pessoais possuem suporte para reproduzir uxos M-JPEG. Porm, em testes realizados notou-se problemas de reproduo dos vdeos quando acessados atravs de um navegador web de um telefone celular.

Android Desenvolvido pelo consrcio Open Handset Alliance, formado por fabricantes de hard-

ware e software alm de empresas de telecomunicaes, o Android (OPEN HANDSET ALLIANCE, 2008) consiste em uma plataforma de cdigo aberto, construda sobre o ncleo do Linux, destinada a dispositivos mveis. Na pilha de software da plataforma Android, ilustrada pela Figura 3, as aplicaes de usurio desenvolvidas em Java fazem uso de um ncleo de bibliotecas Java especco. Essa aplicaes rodam sobre o Dalvik, uma mquina virtual Java que implementa o conceito just-in-time compilation (JIT), visando assim melhorar o desempenho de programas em mquinas virtuais. Na arquitetura ainda esto presentes bibliotecas em C para lidar com a interface de entrada sensvel ao toque, banco de dados simplicado, etc.
Aplicaes Android Arcabouo de Aplicaes
Activity Manager Window Manager Notication Manager View System

...

... Bibliotecas

...

Media Framework OpenGL

SQLite Surface Manager

Ambiente de execuo

...

... Kernel Linux

Dalvik VM

Figura 3 Arquitetura da plataforma Android

O kit de desenvolvimento de software (SDK) para o Android, composto por bibliotecas, depurador, documentao, cdigos exemplos e um emulador de telefone celular, aliado ao ambiente de desenvolvimento integrado (AID) Eclipse1 , formam uma ferramenta completa para escrita, compilao, depurao e execuo de aplicaes Android. Uma aplicao Android tpica formada por dois arquivos: (1) descritor de interface com o usurio, escrito em XML; (2) classe Java a qual contm a lgica de programao e a associao desta lgica com cada elemento grco da interface com o usurio. Dentro do arquivo XML cada elemento grco na interface do usurio chamado de View. Temse elementos para interao com o usurio como TextView, o qual exibe texto, EditView que permite inserir textos, e elementos que atuam como contineres e agrupam outros elementos, como o LinearLayout e TableLayout. A Figura 4 apresenta as relaes entre
1

http://www.eclipse.org

Interface da aplicao

Descrio da interface em XML

Classe Java com a lgica

Figura 4 Concepo de uma aplicao Android

os elementos visuais para o usurio com sua descrio em XML e como so identicados dentro da classe Java responsvel pela lgica funcional da aplicao.

3.1

Reproduo de uxos de vdeos O Android fornece a VideoView a qual capaz de reproduzir uxos de vdeos dentro

de contineres de mdia 3GP (3GPP, 2004) e MP4 (ISO, 2003). Porm, conforme descrito na Seo 2 o Zoneminder por padro envia uxos M-JPEG e sendo assim o VideoView no est apto para reproduzi-los. Kls (2009) desenvolveu a classe MjpegView, derivada da classe Android SurfaceView, que capaz de reproduzir uxos M-JPEG. Esta classe foi essencial para o desenvolvimento do DroidMinder e os detalhes so apresentados na Seo 4.

DroidMinder

Apesar do Zoneminder oferecer um agente cliente especco para aparelhos mveis, uma interface web simplicada, este no foi pensado para os novos telefones inteligentes. O DroidMinder consiste em uma aplicao para Android 1.6, ou superior, cujo objetivo atuar como agente cliente para um sistema de vigilncia ZoneMinder (veja Seo 2). O Zoneminder implementa mecanismos de segurana para autenticao de usurios e para controle de acesso. Os usurios so classicados como administrador, com permisso total ao sistema; e como usurio comum, somente capaz de visualizar as cmeras de monitoramento. O uso de tais mecanismos garante que as imagens das cmeras s estejam disponveis para usurios autnticos e autorizados. Contudo as informaes trocadas entre o usurio, atravs de um navegador web, e o Zoneminder ainda esto suceptveis a interceptao. Por estar rodando sobre o servidor web Apache, pode-se fazer uso dos protocolos SSL/TLS (FREIER; KARLTON; KOCHER, 1996; DIERKS; ALLEN, 1999) para garantir assim a condencialidade dos dados. No Zoneminder, informaes sobre agentes de monitoramento (cmeras), usurios, alarmes, etc so armazenadas em um banco de dados relacional, no caso o MySQL2 . O agente cliente padro do ZoneMinder consiste de uma pgina em PHP que acessa diretamente essa base MySQL, usufruindo da facilidade de estar rodando na mesma mquina
2

http://www.mysql.com

onde encontra-se a base de dados. O objetivo do DroidMinder permitir aos usurios monitorar suas cmeras de vigilncias atravs da Internet, estando essa aplicao desaclopada sicamente da mquina onde est rodando o Zoneminder. Para o seu desenvolvimento duas abordagens poderiam ser exploradas: 1. Desenvolver um agente cliente que realize consultas diretas base de dados MySQL; 2. Desenvolver um agente cliente que acesse a interface web do ZoneMinder e obtenha a partir desta os uxos de vdeo das cmeras de vigilncia. Em termos de complexidade de desenvolvimento, a primeira abordagem seria a opo menos complexa, pois bastaria fazer uso de uma API para fazer consultas diretas base MySQL. Porm se o ZoneMinder estiver rodando atrs de um rewall 3 seria necessrio liberar a porta para acesso ao MySQL, o que nem sempre possvel alm de poder acarretar em problemas de segurana. Seria necessrio ainda a criao de um usurio no MySQL que somente tivesse permisso de leitura em algumas poucas tabelas relacionadas s cmeras. Na segunda abordagem a complexidade para o desenvolvimento seria um pouco maior se comparada com a primeira, pois a aplicao deveria interagir com uma pgina web do Zoneminder, sendo necessrio enviar requisies HTTP e tratar as respectivas respostas para assim obter informaes sobre os uxos de vdeo das cmeras de vigilncia. Para o desenvolvimento do DroidMinder optou-se pela segunda abordagem pelo fato dessa ser a mais transparente para o usurio, pois bastaria este fornecer ao DroidMinder o endereo IP e porta onde est rodando o Zoneminder, para assim obter acesso s cmeras de vigilncia cadastradas. Dessa forma no h necessidade de realizar modicaes na base de dados MySQL ou mesmo criar novas regras no rewall 4 . A Figura 5 ilustra a interao entre o DroidMinder e o sistema de vigilncia Zoneminder.
Sistema de vigilncia ZoneMinder
Linux + Apache
Requisies HTTP

Cmera USB

DroidMinder

Interface Web do ZoneMinder Cmera IP


Figura 5 DroidMinder interagindo com o Zoneminder

A Figura 6 apresenta as interfaces do DroidMinder. Na Figura 6b tem-se as informaes necessrias para que o DroidMinder possa acessar o servidor do Zoneminder, como nome de usurio, senha, endereo IP e porta, caso o servidor web esteja rodando em uma porta diferente das padres, 80 para HTTP e 443 para HTTPS (HTTP sobre o SSL/TLS).
Ponto de controle que mantm acessos no autorizados fora do permetro de segurana, ao mesmo tempo que possibilita acesso aos sistemas externos. 4 Assumindo que o trfego para o servidor web sempre estar liberado.
3

Na primeira execuo do DroidMinder, logo aps fornecer as informaes de conexo, o usurio direcionado a interface da Figura 6c. Ali so listadas as cmeras presentes no Zoneminder, podendo o usurio alterar o nome de cada cmera e indicar quais dessas deseja monitorar. Cabe salientar que a listagem das cmeras sempre obtida do Zoneminder cada execuo do Droidminder, visando assim garantir a corretude das informaes ali apresentadas, uma vez que a lista de cmeras presentes no Zoneminder pode ser alterada a qualquer momento pelo administrador. Na Figura 6c so listadas 6 cmeras, mas somente 4 cmeras esto selecionadas para o monitoramento.

(a) Tela inicial

(b) Informaes sobre o servidor

(c) Seleo de cmeras

(d) Visualizao das imagens

Figura 6 Interfaces do DroidMinder

Aps a congurao das cmeras pode-se ento monitor-las. A Figura 6d ilustra a interface de monitoramento com 4 cmeras ativas, sendo possvel monitorar at 7 cmeras simultaneamente. Para a reproduo de cada uxo de vdeo foi feito uso da classe

MjpegView (KLS, 2009) e o usurio pode iniciar ou parar a reproduo de cada vdeo com um simples toque na tela. Nesta interface existe uma cmera em destaque, com uma rea de exibio maior, e as cmeras secundrias. O usurio pode colocar em destaque qualquer cmera que desejar, bastando para isso dar um duplo toque sobre a janela secundria desejada e o vdeo desta trocar de lugar com o vdeo que est em destaque.
Apesar da interface permitir monitorar at 7 cmeras, o nmero de uxos de vdeos

que podero ser reproduzidos simultaneamente ser limitado pelo poder de processamento e memria de cada dispositivo Android. Nos testes realizados com o emulador do SDK Android 1.6 foi possvel exibir os 7 uxos simultneos, o mesmo foi observado em um telefone Motorola A853 Milestone com o Android 2.0, porm com o aumento do nmero de uxo simultneos observou-se uma queda no desempenho da reproduo.

Trabalhos relacionados Desenvolvido pela empresa Exacq, o NVR Viewer 5 uma aplicao para dispositi-

vos mveis munido do sistema operacional da Apple, como o iPhone, IPod Touch e iPad. A aplicao s permite monitorar cmeras que estejam acopladas ao sistema de vigilncia comercializado pela Exacq. A aplicao permite monitorar diversas cmeras simultaneamente, movimentar cmeras PTZ, faz uso do protocolo SSL para garantir a condencialidade dos dados trocados com o servidor e ainda permite acessar vdeos que foram gravados previamente pelo sistema de vigilncia. O aplicativo Android Video Camera Edition6 , desenvolvido pela empresa TotalControl, foi projetado para rodar sobre a plataforma Android e pode operar com diversos sistemas de vigilncia, entre eles o ZoneMinder. S permite a visualizao de uma nica cmera por vez, no permite gravar o vdeo que est sendo recebido mas prov suporte a cmeras PTZ. O aplicativo comercializado em vrias verses que so diferenciadas pelo nmero mximo de cmeras que podem monitorar. O Smartvue7 um aplicativo comercial para iPhone e iPod que permite a conexo direta com cmeras IP de vigilncia. Alm de visualizar as imagens possvel tambm interagir com cmeras PTZ. Dos trabalhos apresentados acima o NVR Viewer mostra-se como mais maduro e com um maior nmero de recursos, porm s opera com sistemas de vigilncia da prpria empresa, restrigindo assim o seu uso. O Smartvue mostra-se com uma soluo barata para o monitoramento de cmeras isoladas, no sendo assim adequado para sistemas de vigilncia complexos. O aplicativo da empresa TotalControl o que mais se assemelha com o DroidMinder, primeiro por ter sido desenvolvido para Android e segundo por permitir operar com um sistema de vigilncia de cdigo aberto, no caso o Zoneminder. O DroidMinder tem como vantagens a possibilidade de visualizar at 7 cmeras simultneas, no impor limites no nmero mximo de cmeras a monitorar e por ser um projeto de cdigo aberto permite que outras pessoas o modiquem para atender necessidades especcas ou mesmo para incorporar melhorias.

Concluses e trabalhos futuros O uso de computadores pessoais, aliado a softwares simples, so fatores respons-

veis pelo crescimento do uso de sistemas de vigilncia em residncias e pequenas empresas. Diante dos diversos softwares do mercado possvel destacar o Zoneminder, um
http://www.exacq.com/integration/mobile.html http://totalcontrolapp.com/index.php?option=com_content&task=view&id=47&Itemid=84 7 http://www.smartvue.com/html/smartvue_for_iphone.html
5 6

projeto de cdigo aberto e que pode ser obtido gratuitamente, que permite operar com os mais diferentes tipos de cmeras de vigilncia como cmeras USB, cmeras IP e at mesmo cmeras conectadas a uma placa de captura de vdeo. Apesar do Zoneminder oferecer uma interface web simplicada para telefone celular, esta no foi projetada para os novos telefones inteligentes e assim no apresenta um nvel de usabilidade equivalente s demais aplicaes presentes neste tipo de telefone. O DroidMinder foi proposto justamente para oferecer uma interface para monitoramento de cmeras mais robusta que aquela presente no Zoneminder. A escolha da plataforma Android foi principalmente motivada por ser um projeto de cdigo aberto e por estar presente em aparelhos de diferentes fabricantes, podendo assim atingir um nmero maior de usurios. Como trabalhos futuros podemos destacar dois objetivos iniciais que no foram contemplados e um terceiro que no havia sido pensado na poca. Um desses objetivos era permitir que o usurio gravasse em seu dispositivo mvel o vdeo que est visualizando no momento. Para tal, bastaria o usurio tocar e segurar por 1 segundo a janela do vdeo desejado. Apesar dessa interao com o usurio ter sido implementada a parte da gravao de fato no foi realizada. O Zoneminder implementa diversos protocolos para interagir com cmeras Pan/Tilt/Zoom (PTZ), podendo assim moviment-las nos dois eixos alm de realizar zoom. Outro objetivo do DroidMinder era permitir que o usurio movimentasse as cmeras, alm do zoom, com simples gestos na tela do vdeo, como o arraste. Por m, a internacionalizao da aplicao seria um outro trabalho futuro. O DroidMinder est sob uma licena de software livre e seu cdigo fonte pode ser obtido no seguinte endereo: OFUSCADO para o processo reviso. http://bit.ly/droidminder.

Agradecimento Ao Conselho Nacional de Desenvolvimento Cientco e Tecnolgico (CNPq) pelo apoio nanceiro sem qual no seria possvel desenvolver o presente trabalho.

Responsabilidade de autoria As informaes contidas neste artigo so de inteira responsabilidade de seus autores. As opinies nele emitidas no representam, necessariamente, pontos de vista da Instituio e/ou do Conselho Editorial do IF-SC.

Referncias 3GPP. 3GPP TS 26.244: Transparent end-to-end packet switched streaming service (PSS); 3GPP le format (3GP). 2004. Disponvel em: <http://www.3gpp.org/ftp/Specs/htmlinfo/26244.htm>. DIERKS, T.; ALLEN, C. The TLS Protocol Version 1.0. [S.l.], jan 1999. FREIER, A. O.; KARLTON, P.; KOCHER, P. C. The SSL protocol - v.3. [S.l.], Maro 1996. IEEE. Wireless lan medium access control (mac) and physical layer (phy) specications. IEEE Std 802.11-2007 (Revision of IEEE Std 802.11-1999), p. C11184, 12 2007. ISO. Information technology Coding of audio-visual objects Part 14: MP4 le format. [S.l.], 2003. ITU. Recommendation T.802 : Information technology - JPEG 2000 image coding system: Motion JPEG 2000. [S.l.], jan 2005. Disponvel em: <http://www.itu.int/rec/T-RECT.802/en>. KLS, P. Mjpegview an android view for mjpeg streams. abr 2009. Disponvel em: <http://www.anddev.org/multimedia-problems-f28/mjpeg-on-android-anyone-t1871.html>. OPEN HANDSET ALLIANCE. Android operating system. 2008. Disponvel em: <http://www.android.com>. OPEN MOBILE ALLIANCE. Wireless Application Protocol Architecture Specication. [S.l.], abr 1998. ZONEMINDER. Linux video camera and cctv security with motion detection. 2004. Disponvel em: <http://www.zoneminder.com>.