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.