Sistema de Vigilância Digital com ZoneMinder

Por:
Sistema de Vigilância Digital com ZoneMinder

O presente documento refere-se a implantação de um sistema para disponibilizar e gerenciar imagens de circuitos internos via web. Tal sistema ficará abrigado em um servidor Linux utilizando placas de captura PICO2000, que em verdade são placas genéricas de captura de vídeo vendidas com o nome do sistema proprietário que freqüentemente as utiliza.

O software utilizado neste projeto, entretanto, é livre e chama-se ZoneMinder, sistema CFTV de vigilância digital com avançada função DVR (Digital Video Recording), que fornece imagens de um circuito interno via Internet, visualizáveis em browsers.

A redação deste texto não teria sido possível sem o inigualável suporte técnico GRATUITO da equipe ZoneMinder (Phil, Corey e James) e sem a precisa revisão da colega Francine. Fica registrada portanto a gratidão da _bds Labs. para com estas formidáveis pessoas.

Introdução

Partiremos de uma distribuição Kurumin Linux em sua versão 6.0 (kernel 2.6.14), personalizaremos alguns arquivos e ajustaremos o sistema operacional, tornando-o apto a reconhecer o hardware utilizado e condizente com as necessidades de um servidor de vídeo.

Este texto tenta ser o mais prestativo e didático possível, inclusive ao explicitar cada um dos comandos de terminal necessários, facilitando assim o “copiar e colar” (procedimento recomendável principalmente quando da utilização do apt-get) pois alguns pacotes possuem nomes incomuns que podem levar ao erro de digitação caso sejam inseridos caractere a caractere.

Os procedimentos aqui descritos levam em consideração placas com o chipset mais comumente encontrado em território brasileiro (Conexant/Brooktree Bt848 ou Bt878) mas podem ser utilizados com outros chipsets (veja a lista em “Da escolha e da instalação da placa“). Cabe observar a título de curiosidade que o mesmo chipset pode ser encontrado em diferentes modelos de placas, o que significa que as vezes marcas distintas utilizam hardware equivalente.

O driver encarregado do chipset em questão é o bttv para o qual existe uma listagem pré-compilada de modelos compatíveis já testados no Linux, e que pode ser útil caso se queira verificar a possibilidade de utilização para uma determinada placa. Tal lista está no arquivo chamado CARDLIST (ou CARDLIST.bttv) que acompanha os arquivos-fonte do kernel, e o modelo que estiver listado ali será bem-vindo ao sistema operacional, necessitando em alguns casos de pequenas alterações nos arquivos responsáveis pelos parâmetros que serão utilizados no carregamento do modulo (driver). Isso tudo será visto em detalhes adiante.

Foi colocada ao final deste documento uma seção chamada Glossário que esclarece a terminologia aqui utilizada.

Streaming

Mesmo utilizando somente imagens JPEG no processo de captura, quando realiza streaming, o ZoneMinder trabalha com os métodos MPEG e M-JPEG, este último sendo um padrão ascendente na comunidade científica internacional e que oferece excelente performance.

O streaming MPEG é possível graças aos pacotes ffmpeg de desenvolvimento francês. Entretanto, pode-se trabalhar com pacotes mpeg_encode, desenvolvidos pelo Berkeley Multimedia Research Center:

M-JPEG: Múltiplas imagens JPEG já armazenadas são escritas seqüencialmente em um único arquivo e encaminhadas para streaming.

FFmpeg: Padrão utilizado para streaming MPEG pelo ZoneMinder, os pacotes FFmpeg — disponibilizados gratuitamente — baseiam-se nos codecs da biblioteca libavcodec para tarefas referentes a gravação, conversão e streaming de áudio e vídeo.
Criados pelo programador francês Fabrice Bellard, estes pacotes hoje são mantidos pelos mesmos desenvolvedores do projeto MPlayer. Implementando compressões MPEG-1, MPEG-2 e MPEG-4 esses pacotes mostram-se bastante versáteis e são utilizados com eficácia em webcasts.

mpeg_encode: Alternativa ao FFmpeg, o software mpeg_encode (formalmente conhecido por Berkeley encoder) traz consigo a aclamada “marca” Universidade de Berkeley e como tal, possui um algoritmo elegante e perspicaz: fazendo uso de processamento paralelo, o enlace de áudio e vídeo passa por diversos módulos servidores que tentam assegurar imagens incólumes ao destino final. A desvantagem fica por conta da limitação que o Berkeley encoder possui na oferta de compressões; ele tão somente trabalha com MPEG-1, o primeiro padrão MPEG, hoje utilizado com VCDs.


Pirataria

Principalmente entre as pequenas e médias empresas (SMBs), é comum a utilização ilegal de soluções CFTV proprietárias, entre as quais destaca-se uma denominada PICO2000. Ilegalmente vendidas em território Tupiniquim no qual a marca não mais possui um representante, as cópias piratas do PICO2000 começam a chamar a atenção da ABES e da Policia Federal devido a sua disseminação em larga escala, podendo desencadear ações criminais entre aqueles que insistem em usá-las (certas vezes por desconhecerem a existência de soluções similares abertas).

Tanto o PICO2000 quanto o ZoneMinder possuem detecção de movimento entretanto o segundo leva vantagem por ser acessível via web e totalmente adaptável, podendo ser personalizado em acordo com as necessidades de cada situação.

Objetivos deste texto

Socialmente responsável e justo, este documento se propõe a criar uma solução legalmente aceita que evita o custo da licença sobre o uso de softwares proprietários e combate a pirataria. Justo, pois a solução aqui descrita funcionará bem, mesmo com as placas de captura mais baratas do mercado.

Adicionalmente, espera-se que a substituição de software pirata por soluções legais facilite o árduo caminho trilhado pelas empresas na obtenção de conformidades diversas sobre os sistemas de informação, conseqüentemente agregando valor e propiciando crescimento as mesmas.

Requisitos do sistema

Recomenda-se para os procedimentos aqui descritos pelo menos 512MB de memória RAM e um HD com 80GB no mínimo pois a função DVR necessitará de espaço para alocar as imagens gravadas e quanto maior for esse espaço, mais tempo de gravação poderá ser armazenado.

ZoneMinder

index_html_16c8cd18Figura 1: monitor de uma câmera com função PTZ
index_html_7a404a81Figura 2: gráfico de movimentos detectados ao longo do tempo

Disponível gratuitamente em http://www.zoneminder.com/ o ZoneMinder é uma solução GPL criada por Phillip Coombes para gerenciamento de câmeras de vigilância pela Internet utilizando a interface “Video4Linux”.

Além das claras vantagens que sua licença proporciona em termos de custo, confiabilidade, transparência e possibilidade de personalização, o ZoneMinder disponibiliza suas imagens para acesso através de navegadores comuns de Internet (Firefox e Internet Explorer), característica não encontrada no PICO2000.

Lançando mão de módulos escritos em Perl, ele possui um funcionamento que otimiza os recursos do sistema de modo que mesmo gerenciando diversas câmeras simultaneamente, não há sobrecarga de informação. Destaca-se também a possibilidade de disparar gravações somente quando movimentos forem detectados em áreas especificas do monitor, isto é, imagine uma câmera filmando a entrada de sua casa incluindo a calçada, o portão e parte da rua ou avenida; pode-se dizer ao ZoneMinder para detectar movimentos apenas na região do portão e ignorar os movimentos captados na calçada e na rua. Isto permite iniciar gravações somente quando alguém passar pelo portão, otimizando o uso do disco. Mais do que isso, é possível evitar a gravação de cães e gatos passando ali através do ajuste de sensibilidade.

Quando munido de hardware adequado, o ZoneMinder consegue gerenciar ate 32 câmeras desde que a taxa de atualização destas esteja configurada para 2 fps, uma freqüência bastante baixa que prejudica a qualidade do vídeo. Um numero de câmeras gerenciadas menor do que 32 possibilita o aumento da freqüência de atualização de quadros e as imagens melhoram.

Empresas

Além de ser insuperável no âmbito residencial, perceba que quando acomodado em um sistema operacional adequadamente “equipado”, este servidor de câmeras pode facilmente dar conta de circuitos internos corporativos de empresas que eventualmente possuam diretrizes mais exigentes para com seus sistemas de informação, isto é, implementando-se algumas funcionalidades adicionais, o ZoneMinder ganha ares de servidor de aplicações críticas, veja alguns exemplos:

  • O uso de NTP pode garantir precisão e veracidade aos horários atribuídos a cada filmagem;
  • Quanto a controversa relação segurança/produtividade, é possível usufruir de todas as vantagens que o software oferece sem colocar em risco a rede da empresa desde que o servidor seja colocado no interior de uma DMZ com o proxy corretamente configurado. Assim, a visualização das câmeras pela Internet (fora da empresa) não oferecerá riscos a rede local; e
  • O uso de SSL/TLS é recomendado caso se queira ampliar a proteção das conexões entre clientes (browsers) e o ZoneMinder.

Trata-se portanto de um software altamente capaz de lidar com as tarefas de um servidor profissional de CFTV e potencialmente competitivo.

LAMP

A já notória tríade Apache, MySQL e PHP, também utilizada junto a softwares de renome como o MediaWiki (Wikipedia) é responsável pela infra-estrutura web do sistema. Costuma-se designar LAMP a associação funcional destes três entes quando abrigados em um sistema operacional Linux, devido as iniciais das partes envolvidas.

A interface em PHP oferece todo o controle sobre o sistema, permitindo ao usuário não apenas acompanhar imagens em tempo real mas também definir todos os detalhes que devem disparar gravações e alarmes para cada câmera, recuperar e excluir filmagens anteriores armazenadas no servidor.

Já que o core do ZoneMinder é escrito em Perl, a base de dados MySQL atua não apenas como um depósito de informações mas também como intermediária entre a interface gráfica dinâmica (em PHP) e o software propriamente dito.

SMS

Sim, o ZoneMinder pode enviar sms para celulares. Isso é útil para áreas que não devem ter movimento após um certo horário ou em determinados dias. Considere um saguão monitorado que supostamente deveria estar vazio após as 18h00min. Caso algo se mova por ali as 18h30min, o sistema automaticamente envia uma notificação SMS ao responsável pela segurança, alertando sobre os movimentos detectados pela câmera em questão.

Convenções utilizadas neste documento

  • O símbolo “#” significa que o comando deve ser executado como root.
  • O símbolo “$” significa que o comando deve ser realizado como usuário
  • O símbolo “~$” significa que além de o comando ser realizado pelo usuário, tal ação deve ser executada no diretório do usuário
  • O símbolo “>” é o prompt do MySQL.

Da escolha e da instalação da placa

Os chipsets suportados pelo sistema operacional Linux através do driver bttv são:

  • Bt848
  • Bt848A
  • Bt849
  • Bt878
  • Bt879

sendo que a placa utilizada é do tipo UCC4, CONEXANT FUSION 878A (chipset Bt878).

Carregamento manual do driver

Executando o comando:

# modprobe bttv

o modulo da placa será carregado manualmente.

Verifique se o módulo foi corretamente carregado com lsmod e dmesg (este último especificando linhas referentes ao modulo bttv):

# lsmod

Module Size Used by
msp3400 13712 0 (unused)
tuner 2832 1 (autoclean)
bttv 45648 0
videodev 2656 2 [bttv]i2c-algo-bit 7024 1 [bttv]i2c-core 12416 0 [msp3400 tuner bttv i2c-algo-bit]
# dmesg | grep bttv

Carregamento automático do driver

Pode-se carregar tal módulo automaticamente na inicialização editando os arquivos /etc/modutils/1devfsd e /etc/modprobe.d/devfsd (Debian, Kurumin e etc.) ou o arquivo /etc/modprobe.conf (distribuições Red Hat, Fedora Core e Mandriva) e inserindo linhas semelhantes as do exemplo a seguir:

# carga do driver bttv
alias char-major-81 videodev
alias char-major-81-0 bttv
options bttv card=n radio=n
options tuner debug=1 type=n

O primeiro parâmetro a ser modificado é o:

options bttv card=n radio=n

n deve ser obtido da lista citada em “Introdução”, de acordo com o seu modelo. Ex: sua placa é uma TView99 CPH063, então, de acordo com a tabela, ela é card número 38. Neste caso a linha ficaria:

options bttv card=38 radio=n

O parâmetro seguinte é o radio=n, onde n pode ser 1 ou 0, significando a existência ou não, de um rádio na placa de captura, respectivamente. Isto vai variar de fabricante para fabricante, portanto verifique no manual do produto se ela possui ou não o recurso de rádio.

O próximo parâmetro é do sintonizador (tuner) que determina o modelo do sintonizador que sua placa possui. O parâmetro é:

options tuner debug=1 type=n


debug=1
ativa o modo “detalhado”, de modo a ecoar todas mensagens do driver na tela. Caso não deseje este comportamento, substitua o valor por 0. O parâmetro seguinte, type=n é o mais importante, pois define o modelo do tuner possuído. Visto que a maioria dos manuais não informa este parâmetro, uma forma é informar 1 por 1 os valores da lista “tuner” acima até que a imagem seja exibida corretamente. Os modelos mais comuns parecem ser os baseados em tuner da Philips.

“PICO2000”

Trata-se em verdade de uma placa genérica com 4 entradas de vídeo e nenhuma para áudio, padrão UCC4. A placa acabou sendo equivocadamente chamada de PICO2000 por ser este o nome do software proprietário que costuma acompanhá-la em sistemas operacionais da Microsoft.

Os quatro canais de entradas encaminham informações para um único chip Bt878 e este, através do modulo bttv, torna tais informações compreensíveis ao Linux. O afunilamento de dados no chip cria a necessidade de, junto ao ZoneMinder, definir configurações iguais para todas as câmeras ligadas a uma mesma placa, ainda que estas ofereçam recursos distintos. Em outras palavras, um único Bt878 processa quatro sinais simultâneos e portanto, os parâmetros que um canal utiliza devem ser iguais aos dos outros três, caso contrario corre-se o risco de corromper imagens entregando instruções contraditórias ao hardware.

Especificamente para a placa “PICO2000” (veja o texto preliminar no início deste documento) utilizada com distribuições Debian, edite ambos os arquivos /etc/modutils/1devfsd e /etc/modprobe.d/devfsd e insira as seguintes linhas:

# carga para o chipset bt878, 2 placas
options bttv card=77,77 tuner=-1,-1 radio=0,0 triton1=0 vsfx=0 autoload=0

Reinicie a máquina e confirme o carregamento do módulo em questão com o lsmod e com o dmesg:

# lsmod
# dmesg | grep bttv

Instalação dos pré-requisitos

Lançando mão do “apt-get”, aqueles que utilizam distribuições Debian podem se beneficiar na instalação. Será necessário entretanto utilizar um arquivo /etc/apt/sources.list devidamente editado para que o apt-get utilize os “mirrors” adequados.

Certas vezes, os comandos descritos mostram um único apt-get gerenciando a instalação de apenas um pacote. Pode parecer desperdício de tempo mas essa medida tem a função de evitar conflitos entre dependências.

Arquivo sources.list utilizado

Seguem abaixo as linhas que foram utilizadas no referido arquivo:

deb http://ftp.us.debian.org/debian etch main contrib non-free
deb http://ftp.uk.debian.org/debian etch main contrib non-free

# Debian Unofficial (contém o java, acrobat e outros pacotes “não livres”)
deb http://ftp.debian-unofficial.org/debian sarge main contrib non-free restricted

# ZoneMinder
deb http://www.spic.net/zoneminder/debian/ ./
deb-src http://www.spic.net/zoneminder/debian/ ./
deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all

Após editar o /etc/apt/sources.list, atualize o “apt-get”:

# apt-get update


Acomodação LAMP

Hora de instalar o web server Apache:

# apt-get install apache

Instala-se então o PHP e mais os pacotes necessários a base de dados:

# apt-get install php5
# apt-get install php5-mysql
# apt-get install libapache-mod-php5

Instala-se o MySQL:

# apt-get install mysql-server mysql-client

O servidor também precisara dos pacotes MySQL de desenvolvimento:

# apt-get install libmysqlclient14-dev
# apt-get install libmysqlclient15-dev
# apt-get install libmysql++2c2a libmysql++-dev
Pacotes adicionais

Pacotes SSL necessários:

# apt-get install libssl-dev libssl0.9.8-dbg

Já que o ZoneMinder manipula JPEGs, é importante instalar alguns pacotes adicionais:

# apt-get install imgsizer libjpeg62-dev libjpeg-progs

O ZoneMinder utiliza vários módulos Perl, o que torna interessante acrescentar inclusive pacotes de documentação para futura referência, eventual desenvolvimento e personalização do sistema:

# apt-get install perl-byacc perl-debug perl-doc perl-ifeffit
# apt-get install libclass-date-perl libdate-manip-perl

Os seguintes pacotes Perl também serão úteis para alguns tipos de câmera

# apt-get install libpcre3-dev libpcre-ocaml-dev pcregrep

Pacotes Video4Linux:

# apt-get install camserv gstreamer0.8-misc kdetv kmplayer

Outras ferramentas de manipulação gráfica que podem ser utilizadas:

# apt-get install dcraw groff imgvtopgm
# apt-get install netpbm libnetpbm10-dev
# apt-get install tex4ht-common tex4ht tth
# apt-get install x-face-el xpaint

Pacotes ffmpeg que possibilitam streaming MPEG:

# apt-get install ffmpeg ffmpeg2theora avifile-mjpeg-plugin
# apt-get install gstreamer0.10-ffmpeg gstreamer0.8-ffmpeg
# apt-get install libavcodec-dev libavformat-dev libpostproc0d
# apt-get install libpostproc-dev moc-ffmpeg-plugin

Reinicia-se o Apache:

# /etc/init.d/apache2 restart

Compiladores C++ (acredite, os dois “apt-gets” abaixo são necessários embora pareça redundância):

# apt-get install gcc
# apt-get install g++
Ajustes no sistema operacional

Memória compartilhada:

# echo kernel.shmmax = 134217728 >> /etc/sysctl.conf
ZoneMinder

Agora sim, o ZoneMinder!

Após realizar o download da última versão disponível em www.zoneminder.com vem a etapa de compilação. Entre na pasta principal e execute o script “configure” fornecendo o seguinte comando (um único comando):

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

Sendo que “/var/www/zm” será o diretório de instalação dos arquivos PHP e “/var/www/cgi-bin” o dos arquivos CGI.

Lembre-se que a instalação padrão leva em conta os seguintes valores:

  • name: ‘zm’
  • user: ‘zmuser’
  • database host: ‘localhost’
  • password: ‘zmpass’

Realiza-se o download de eventuais patches em

http://www.zoneminder.com/wiki/index.php/1.22.2_Patches

Exemplo para o patch ffmpeg:

# wget http://www.zoneminder.com/downloads/zm-1.22.2-ffmpeg.patch

o arquivo deve ficar no diretório principal do ZoneMinder.

Aplica-se o temido patch (utilizando o arquivo do exemplo anterior):

# patch -p0 < zm-1.22.2-ffmpeg.patch

Comando make duas vezes realiza a compilação adequada:

# make
# make

Entra-se no MySQL:

# mysql mysql < db/zm_create.sql
# mysql mysql

Forneça o seguinte comando, saia e reinicie o MySQL:

> grant select,insert,update,delete on zm.* to ‘zmuser’@localhost identified by ‘zmpass’;
> quit

# mysqladmin reload <-u root -p>

Instalação:

# make install

Este último comando fará inclusive uma copia de zm.conf para o diretório de configurações do sistema (/usr/local/etc/).

E para iniciar o ZoneMinder:

# zmpkg.pl start

Veja que o parâmetro “start” pode ser substituído por “stop” ou “restart”.

Cambozola

Caso o browser utilizado NÃO seja o Firefox, convém instalar o Cambozola para conferir qualidade a “streamings” JPEG.

Trata-se de um applet Java e seu download deve ser realizado no local indicado em “Referências”. Logo em seguida, descompacte-o:

~$ wget http://www.charliemouse.com/code/cambozola/cambozola-latest.tar.gz
~$ tar xvfz cambozola-latest.tar.gz

O arquivo “cambozola.jar” deve ser colocado no diretório web especificado no comando “./configure” e para que os usuários beneficiem-se deste recurso, eles devem possuir ambiente Java em suas máquinas ou seja, o lado cliente precisará do JRE instalado para que o browser funcione adequadamente.

Entra-se no diretório gerado pelo último comando e então:

# cp cambozola.jar /var/www/zm/

Modifique os atributos do arquivo copiado (comando a ser executado dentro do diretório web):

# chown www-data.www-data cambozola.jar

Agora, deve-se habilitar a opção ZM_OPT_CAMBOZOLA nas configurações do ZoneMinder, ZM_CAN_STREAM deve ser configurada para “auto” e ZM_STREAM_METHOD para “jpeg”. Efetuadas estas modificações, será necessário reiniciar o sistema para que o Cambozola seja carregado.

Testes

Agora testa-se o Apache e o PHP criando-se um arquivo de teste em /var/www/ e acessando-o de um navegador em outra maquina:

# vim /var/www/testphp.php

Insira a seguinte linha no arquivo criado, salve-o e feche-o:

<?php phpinfo(); ?>

Então em um browser noutra maquina, vá ao endereço:

http://<endereco.IP.do.servidor>/testphp.php

Caso a tabela de informações do PHP seja visualizável, então ele esta ok assim como o servidor web.


Sistema pronto para o uso

PRONTO! Agora aponte um browser para o arquivo zm.php no endereço ip do seu servidor de câmeras e voila, a interface do ZoneMinder deverá estar visualizável.

BIOS

Não esquecer de configurar o BIOS do servidor para certificar-se de que a maquina seja ligada novamente após uma eventual queda no fornecimento de energia a mesma.

Também é importante desativar o gerenciamento de energia ACPI.

Apêndice

Placas que também capturam áudio

Mais avançadas e com preços razoáveis, placas que utilizam o chipset Philips saa7134 como a FlyVideo 3000 e a Genius Wonder III, possuem áudio incorporado e seus drivers para Unix, mantidos pela Bytesex, funcionam muito bem.

Outros softwares

Quando se iniciou esta busca por sistemas open source que tratassem de gerenciamento de câmeras de segurança, algumas das opções encontradas e posteriormente preteridas mostraram-se ao menos dignas de menção. São elas:

Muito interessante, este pacote GPL serve a propósitos de detecção de movimento através do video4linux, trabalhando com snapshots que podem ser “fundidos” num arquivo MPEG. Também envia SMS mas seu desenvolvimento foi descartado por ser o ZoneMinder uma solução pronta e mais completa.

Recomendado pelo respeitado site LinuxDevices.com, o californiano iomojo é uma solução completa para o gerenciamento de câmeras mas acabou sendo descartado pois oferece pouca documentação e suporte além de possuir funções não condizentes com as necessidades de um sistema digital de segurança patrimonial.

Referências

Glossário

Coletânea de termos que podem causar alguma confusão:

  • BT878: chips localizados nas placas de captura de vídeo utilizadas. São de arquitetura simples e podem ser utilizados no sistema operacional Linux através do driver bttv. Eles conferem as placas a capacidade de capturar vídeo mas não capturam áudio.
  • CFTV: circuito fechado de TV ou em inglês, CCTV (closed-circuit television).
  • DMZ: significa “demilitarized zone”, trata-se de um termo militar utilizado em segurança de redes para designar uma área da LAN que permite acessos externos sem comprometer o restante da rede local.
  • fps: frames-per-second ou quadros por segundo; trata-se da freqüência com a qual a imagem de uma câmera é atualizada.
  • GPL: General Public License, a mais notória licença para software livre, que garante direitos de utilizacão, personalização do código em acordo com as necessidades de utilizacão, redistribuição do software e ainda permite que qualquer um contribua diretamente para a melhoria do programa.
  • LAMP: designação em anagrama utilizando as iniciais do quarteto open source mais conhecido entre os aplicativos web da atualidade, Linux, Apache, MySQL e PHP.
  • PICO2000: trata-se de um software proprietário para Windows que gerencia imagens capturadas por sistemas de vigilância patrimonial. É uma solução completa com os programas cliente e servidor e sem acesso via web. Pirateado em larga escala no mundo inteiro mesmo possuindo um preço razoavelmente acessível (US$40,00 a licença para gerenciamento de 4 câmeras), o PICO2000 legalizado deixou o mercado brasileiro e foi substituído por uma solução caríssima que não suporta o chipset BT878.
  • PTZ: Pan-Tilt-Zoom, conceito associado a câmeras. Pan é o movimento de rotação da câmera e advém do termo panorâmica, Tilt refere-se a um movimento de câmera semelhante ao de uma cabeça fazendo um SIM enquanto a função Zoom, bastante conhecida, trata da capacidade de variar a distância focal no sistema óptico do equipamento, resultando em imagens mais próximas ou mais distantes.
  • SSL/TLS: Secure Sockets Layer/Transport Layer Security; são protocolos criptográficos que fornecem proteção para comunicações na Internet.
  • UCC4: tipo de placa de captura com 4 entradas de vídeo e nenhuma de áudio; não confundir com o equipamento multiplexador de rádio-freqüências.

Sobre os responsáveis pelo presente texto

Plena de convicção sobre os nobres ideais que a sustentam, a _bds Labs. prima pelo conhecimento, pela ética e honestidade e enxerga a Tecnologia da Informação através das lentes do software livre, vislumbrando o caminho para um mundo socialmente justo, e é por isso que a _bds Labs. adota e recomenda soluções open source em seus projetos.

Contato

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X