Executando verificação de segurança...
2

Usando Motion no Raspberry Pi para Stream de Webcam

O que é o Motion?

Motion é um software de detecção de movimento e monitoramento de vídeo que usa câmeras conectadas ao Raspberry Pi. Ele pode capturar imagens, gravar vídeos, fazer stream ao vivo, que será objetivo deste tutorial.

Meu primeiro contato com o software, veio da necessidade de construir uma babá eletrônica usando o Raspberry e agora recentemente um experimento aqui onde trabalho será transmitido, assim novamente utilizarei esse software, mas ele pode se enquadrar em diversas necessidades, como transformar seu equipamento em uma câmera de segurança.

Requisitos:

  • Raspberry Pi 3 com Debian 12 instalado, podendo funcionar em outras versões .
  • Uma webcam conectada ao Raspberry Pi, usamos uma webcam usb.
  • Acesso à Internet (para instalar pacotes e configurar remotamente se necessário).

Atualização do sistema e instalação do Motion

Antes é necessário atualizar o sistema.

sudo apt update 
sudo apt upgrade -y

O Motion está disponível nos repositórios padrão do Debian. Você pode instalá-lo diretamente usando o apt:

sudo apt install motion -y
apt install v4l-utils

Configuração do Motion

O arquivo principal de configuração do Motion é /etc/motion/motion.conf

As principais configurações são:

  • Localize a linha stream_localhost e mude de on para off para que o stream esteja disponível para outros dispositivos na rede.
  • Altere daemon para off, para que o systemctl possa gerenciar o motion.
  • Configure a webcam usada na opção videodevice que ficará como /dev/video0, é possível verificar as webcams conectadas com o comando v4l2-ctl --list-devices.

Para o systemctl poder gerenciar o motion é importante ter um arquivo de serviço com* /etc/systemd/system/multi-user.target.wants/motion.service*, com o conteúdo.

[Unit]
Description=Motion detection video capture daemon
After=network.target

[Service]
User=motion
ExecStart=/usr/bin/motion

[Install]
WantedBy=multi-user.target

Ativando e iniciando o serviço

Para ativar o serviço na inicialização, execute:

sudo systemctl enable motion.service

Inicie o serviço.

sudo systemctl start motion.service

Acesse o stream da webcam em qualquer dispositivo da rede local, usando o IP do Raspberry Pi e a porta configurada, como por exemplo http://x.x.x.x:8081/

Usando Proxypass

O passo a seguir é apenas para o ambiente onde você precisa que a webcam fique acessível de fora da rede, e nesse caso já temos aqui servidores web que ficam expostos, mas não queremos que o Raspberry fique exposto na internet, assim usamos o ProxyPass.

ProxyPass é uma diretiva usada na configuração do Apache HTTP Server para configurar o proxy reverso. É usado para configurar um servidor proxy que encaminha solicitações de clientes que chegam ao servidor web que fica exposto na internet para servidores backend e retorna as respostas aos clientes.

Para isso no servidor web que fica exposto.

sudo a2enmod proxy
sudo a2enmod proxy_http

Adicione as configurações abaixo, apontando para o endereço do raspberry com a webcam, /etc/apache2/sites-enabled/default-ssl.conf

ProxyPreserveHost On
ProxyPass /webcam http://:8081
ProxyPassReverse /webcam http://<>seu-ip-raspberry>:8081

Após isso, podemos acessar da internet com https://webserver/webcam.

Carregando publicação patrocinada...
1

Valeu pelo compartilhar estou criando um sisteminha de CCTV aqui pra casa nessa mesma pegada, RPI + motion e cameras ip.

Quero otimizar a captura de imagens pra quando detectar movimento registrar em um hd externo ao invés de depender de uma cloud paga.

Mais ou menos na mesma pegada do kerberos.io porem sem esse lance novo deles de AI

1

Projeto bacana o seu. Eu tenho 2 Raspberry parado em casa e também tenho planos de em pelo menos um fazer um CCTV. Eu não conhecia o kerberos, depois vou dar uma olhada.

1

O kerberos.io é muito massa, bem completinho, mas não curti a direção que eles foram, mas de qualquer forma uma baita plataforma, feita em php por trás a uns anos até contribui com as traduções pro pt-BR