Motion

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:

HowToForge
Ubunlog

Deixe um comentário