Se você precisa de uma solução rápida para monitorar uma área usando uma webcam em Linux, é possível criar um sistema simples usando apenas shell script, sem precisar de softwares pesados ou interfaces gráficas complexas. Este guia mostra como capturar imagens e detectar movimento de forma básica.
1. Verificando a webcam
Primeiro, confirme se o Linux reconhece sua webcam:
ls /dev/video*
Se o dispositivo /dev/video0 aparecer, significa que a webcam está pronta para uso.
2. Captura básica de imagens e vídeo
Com o ffmpeg instalado, você pode capturar imagens ou vídeos curtos diretamente pela linha de comando.
- Tirar uma foto única:
ffmpeg -f v4l2 -video_size 640x480 -i /dev/video0 -vframes 1 foto.jpg
- Gravar vídeo curto (10 segundos):
ffmpeg -f v4l2 -video_size 640x480 -i /dev/video0 -t 10 video.mp4
A opção -video_size define a resolução da captura, ajustável conforme necessidade.
3. Captura periódica de imagens
Para monitoramento contínuo, você pode gerar imagens em intervalos regulares:
#!/bin/bash
mkdir -p /tmp/webcam_monitor
while true; do
timestamp=$(date +"%Y%m%d_%H%M%S")
ffmpeg -f v4l2 -video_size 640x480 -i /dev/video0 -vframes 1 /tmp/webcam_monitor/$timestamp.jpg
sleep 5
done
Este script cria uma pasta temporária e salva uma foto a cada 5 segundos com timestamp no nome do arquivo.
4. Detecção simples de movimento
Para adicionar detecção de movimento, é possível comparar imagens consecutivas usando ImageMagick:
#!/bin/bash
mkdir -p /tmp/webcam_monitor
prev=""
while true; do
timestamp=$(date +"%Y%m%d_%H%M%S")
current="/tmp/webcam_monitor/$timestamp.jpg"
ffmpeg -f v4l2 -video_size 640x480 -i /dev/video0 -vframes 1 $current
if [[ -n "$prev" ]]; then
diff=$(compare -metric AE $prev $current null: 2>&1)
if [[ $diff -gt 500 ]]; then
echo "Movimento detectado em $timestamp"
fi
fi
prev=$current
sleep 2
done
compareé um comando do ImageMagick.- O valor
500define o limiar de diferença entre imagens; pode ser ajustado de acordo com a sensibilidade desejada.
5. Possíveis melhorias que você pode incrementar
- Gravar vídeo apenas quando houver movimento.
- Limitar a quantidade de imagens/vídeos armazenados para não ocupar muito espaço.
- Enviar alertas por e-mail ou Telegram quando movimento for detectado.
