Faça lives ou grave vídeos e/ou imagens de movimento com sua webcam, smartphone, PS Eye® e qualquer outro periférico de vídeo com o Motion!
| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. Mais detalhes clicando aqui.
Este tutorial não se destina a promover atividades ilegais, como gravação de vídeo não autorizada de pessoas e suas atividades.
Os conhecimentos aqui ofertados devem ser utilizados de forma ética.
1. Introdução
Motion é um pacote nativo dos repositórios da maioria das distribuições Linux que permite ler, de entrada, um dispositivo de vídeo, como uma webcam USB, um smartphone, a camera flat do Raspberry Pi; enfim, qualquer coisa que pode ser usada pra registrar imagens e vídeos.
No caso, o Motion é ainda mais interessante, porque automaticamente lida com detecção de movimento e só registra imagens e vídeos (e áudio, se suportado) quando, dadas as configurações adequadas, se, e somente se, houver movimentação detectada no ambiente!
2. Instalação
Pra instalar o Motion em seu sistema baseado em Debian, como o Ubuntu, é simples:
$ sudo apt install motion
Esse pacote instalará todas as dependências, incluindo o Apache entre elas, e agregará o serviço do motion ao sistema.
Por padrão ele vai exigir que as portas 8080 e 8081 estejam liberadas. A menos que você altere as portas padrão, caso seu sistema esteja com o firewall ativo, esteja atento a isso e libere-as! Se utilizar Ubuntu com UFW, faça:
$ sudo ufw allow 8080 $ sudo ufw allow 8081
3. Configuração
Antes de iniciar o Motion, é importante fazer alguns ajustes pontuais no seu arquivo .conf.
Abra o arquivo /etc/motion/motion.conf com seu editor de textos favorito; no seguinte trecho:
# Start in daemon (background) mode and release terminal.
daemon off
Mude de off para on, assim o motion ao ser iniciado, será repassado a um daemon e não consumirá o terminal de comandos ou processos semelhantes.
Neste outro:
# Target directory for pictures, snapshots and movies
target_dir /home/usuario/camera/
Caminho completo para onde as imagens, vídeos e audios serão armazenados caso o sistema de detecção de movimento seja habilitado.
Já este aqui:
# Video device (e.g. /dev/video0) to be used for capturing.
videodevice /dev/video0
Aponta o dispositivo de vídeo a ser usado. Por padrão é /dev/video0, porém pode ser que em seu sistema ele seja diferente. Altere de acordo.
Enquanto que este:
# Image width in pixels.
width 1024# Image height in pixels.
height 768
Define a resolução de tela da imagem gerada ao ser capturada. Valores mais altos, para uma câmera sem suporte a alta resolução, apenas esticará a imagem, dando um “zoom” digital nela.
Este aqui:
# Maximum number of frames to be captured per second.
framerate 15
Caso a captura gerar muitas imagens, aonde um simples movimento de braço gerará 45 imagens, você pode definir o framerate aqui em valores mais baixos. Isso dirá ao movimento quantas vezes por segundo é permitido capturar uma imagem. Como alternativa, você pode usar o tempo mínimo de quadro para definir um período de tempo mínimo (em segundos) entre as capturas.
Neste outro:
# Output pictures when motion is detected
picture_output off
Liga ou desliga a geração de imagens caso movimentos sejam detectados.
E este:
# Create movies of motion events.
movie_output off
Liga ou desliga a geração de vídeos caso movimentos sejam detectados. Você pode também definir o tempo máximo de gravação sequencial dos vídeos. O padrão é 1 minuto após o gatilho de movimento iniciar a gravação, conforme abaixo:
# Maximum length of movie in seconds.
movie_max_time 60
Este aqui:
# Port number used for the webcontrol.
webcontrol_port 8080
É a porta 8080 padrão para controle e gerenciamento da interface web.
Para acessar a gerencia do sistema externamente (abrindo portas no modem e etc), mude este parâmetro abaixo de off para on:
# Restrict webcontrol connections to the localhost.
webcontrol_localhost off
Estes parâmetros são do LiveStream, um site do APache que vai apenas exibir a camera o tempo todo, respectiva porta 8081, enquanto que o segundo parâmetro libera ou não esse Streamming pela internet (com as devidas configurações de abertura de portas no modem, etc):
# The port number for the live stream.
stream_port 8081# Restrict stream connections to the localhost.
stream_localhost off
Para adicionar uma senha á tela de configuração, adicione estas linhas ao final do arquivo:
# PASSWORD CONFIG
webcontrol_auth_method 1
webcontrol_authentication USUARIO:SENHA
Já para adicionar uma senha á tela de streaming, adicione estas linhas ao final do arquivo:
# PASSWORD STREAM
stream_auth_method 1
stream_authentication USUARIO:SENHA
Aonde USUARIO e SENHA podem ser quaisquer usuarios e senhas de sua escolha, não precisam ser necessariamente os mesmos usuarios e senhas do sistema operacional.
Existe um outro parâmetro interessante, extra, adicionado manualmente ao final do arquivo que é este:
output_normal on
Os valores suportados são on, off, best, center e first.
Se definido para first, ele só vai registrar imagens caso aja um movimento, e só registrará a primeira imagem que desencadeou o movimento. Best vai fazer o mesmo, porém com o melhor frame, que mais houve mudança no padrão do video. Enquanto que Center focará nas mudanças vistas no centro da imagem e não movimentos sutis nas bordas.
Há mais ajustes como qualidade da imagem, porém mantive os valores padrões.
A documentação está neste arquivo: /usr/share/doc/motion/motion_guide.html
4. Utilização
Após configurar tudo, basta salvar e fechar o arquivo.
Execute o motion:
$ sudo motion
Isso é suficiente para que ele inicialize.
Para visualizar a camera web, utilize o endereço:
http://localhost:8081
Enquanto que para visualizar o menu de configurações, utilize:
http://localhost:8080
Se tudo ocorreu bem, você terá uma visão semelhante a:
Certifique-se de que a data e hora do sistema estejam corretos para que o registro nas imagens e vídeos fique correto também.
5. Outros
Para utilizar um celular antigo como WebCam aqui, instale o app “IP Webcam”; Uma vez configurado, você pode configurar o Motion para usa-lo como saída de vídeo. Editando o arquivo /etc/motion/motion.conf novamente, teremos que em geral, quem usa uma webcam pode simplesmente deixar a parte /de/video0 por padrão, mas no nosso caso aonde vamos usar um Smartphone Android.
Então vamos adicionar um “;” (ponto e vírgula) antes dessa opção para substituí-la. Agora procuramos a opção que começa com “Netcam_url” (se ela não existir, adicione), e vamos usar o endereço IP que nos foi informado na IP Webcam quando iniciamos o servidor no Android ficando assim:
netcam_url http://192.168.1.103:8080/videofeed
Agora a Motion usará o smartphone Android como fonte do vídeo que o retransmitirá pela rede. Caso precise acessa-la remotamente, modifique conforme:
webcam_localhost off
6. Conclusão
Como uma forma interessante de reaproveitar dispositivos de camera USB ou mesmo smartphones, o Motion é completo pra quem quer criar um sistema DVR para gravar vídeos e imagens baseadas em movimento e centralizar a gerencia das cameras em 1 único ponto.
Pode ser uma PS Eye®, um smartphone, uma webcam comum ou ainda a camera flat do RaspberryPi, todas podem ser gerenciadas centralizadas no Motion.
#UrbanCompassPony
Fontes:
Autodidata, me aprofundei em sistemas operacionais baseados em UNIX®, principalmente Linux. Também procuro trazer assuntos correlacionados direta ou indiretamente, como automação, robótica e embarcados.