Como Configurar uma Webcam com Detecção de Movimento no Ubuntu

Uma fotografia de uma pessoa consertando uma câmera de segurança.

Motion é uma ferramenta útil que pode transformar sua webcam comum em uma câmera de vigilância. Ele faz isso monitorando o sinal da sua webcam e tirando capturas de tela e vídeos quando detecta movimento. Aqui, mostramos como instalar o Motion e configurar uma webcam com detecção de movimento no Ubuntu Linux.

Índice

  • Instalando o Servidor Motion
  • Configurando o Motion para Seu Sistema
  • Mudando o Local de Salvamento Padrão
  • Ajustando as Configurações de Detecção no Motion
  • Habilitando a Interface Web do Motion
  • Gerenciando as Capturas Salvas Remotamente
  • Iniciando e Testando o Servidor Motion

Instalando o Servidor Motion

O Motion está incluído por padrão no repositório oficial do Ubuntu. Isso significa que você pode instalar este programa através do seu gerenciador de pacotes apt:

sudo apt install motion v4l-utils

Nota: Embora estejamos lidando com o Ubuntu neste artigo, o Motion funcionará para a maioria das distribuições Linux também.

Confirme que seu servidor Motion está funcionando corretamente abrindo o prompt de ajuda do programa:

motion -h

Configurando o Motion para Seu Sistema

Antes de começarmos a configurar o Motion, precisamos copiar o arquivo de configuração para nossa pasta Home para que tenhamos um backup limpo do original. Abra um terminal e copie o arquivo de configuração para sua pasta Home:

cp/etc/motion/motion.conf ~/motion.conf.backup

Abra o arquivo de configuração original usando seu editor de texto favorito:

sudonano/etc/motion/motion.conf

Uma das alterações mais fáceis que você pode fazer para o seu servidor Motion é mudar a qualidade de sua saída de imagem e vídeo. Por padrão, o servidor define sua resolução em 640×480, o que pode ser muito pequeno para webcams modernas.

Para mudar isso, execute o seguinte comando em uma nova sessão de terminal para verificar as resoluções disponíveis para sua câmera:

sudo v4l2-ctl -d/dev/video0 --list-formats-ext

Um terminal mostrando a lista de resoluções disponíveis para a webcam.

Volte para sua configuração do Motion, role para baixo até a categoria “Processamento de Imagem”, e procure pelas variáveis width e height.

Um terminal mostrando os valores padrão para a resolução da webcam do Motion.

Forneça os valores apropriados para a resolução que você deseja. No meu caso, quero rodar o Motion em 1280×720, então digito “1280” como minha largura e “720” como minha altura.

Um terminal mostrando os valores de resolução mais altos atualizados para o Motion.

Defina o valor de framerate para a taxa de quadros que você deseja capturar seus vídeos. Por padrão, isso está definido como “15”, mas você pode diminuí-lo para economizar espaço em disco.

Um terminal destacando a variável framerate no arquivo de configuração do Motion.

Role para baixo até a categoria “Saída de Imagem”, e então defina o valor da variável picture_output para “on”. Isso permitirá que o Motion capture tanto imagens quanto vídeos da sua webcam.

Um terminal mostrando a variável picture_output dentro do arquivo de configuração do Motion.

Mudando o Local de Salvamento Padrão

Outra alteração que você pode fazer para o seu servidor Motion é mudar onde ele salva seus dados. Isso pode ser útil se você quiser exportar seus vídeos e imagens capturados para um diretório remoto montado ou um serviço de armazenamento em nuvem como o Dropbox.

Para começar, navegue ou crie o diretório onde você deseja salvar seus dados:

sudomkdir/motion/data

Defina a propriedade do seu diretório para “motion:adm”:

sudochown-R motion:adm /motion/data

Certifique-se de que todo o caminho para seu diretório seja legível por todos os usuários:

sudochmod-R755/motion/data

Volte para sua configuração do Motion, procure pela variável target_dir, e então defina seu valor para o caminho completo do seu diretório.

Um terminal destacando o diretório de dados personalizado para o Motion.

Ajustando as Configurações de Detecção no Motion

O Motion funciona observando a diferença entre o feed de vídeo atual e o anterior. Se o programa encontrar diferença suficiente entre os dois, classifica isso como “movimento” e grava um vídeo do evento.

Atualmente, o Motion assume que uma diferença de 1500 pixels é suficiente para classificar como “movimento”. Embora isso torne a detecção de movimento fácil para a maioria das webcams, pode ser muito sensível para câmeras de alta resolução.

Para diminuir isso, vá para a categoria “Detecção de Movimento”, e então aumente o valor da variável threshold. Eu acho que 5500 pixels é suficiente para evitar que o Motion grave pequenos movimentos desnecessários do feed da webcam.

Um terminal mostrando um valor de threshold personalizado para o servidor Motion.

Você também pode adicionar a variável threshold_maximum para definir um limite na diferença que o Motion considera como “movimento”. Isso é útil se sua webcam estiver olhando para uma área movimentada e você quiser que ela funcione apenas quando houver menos atividade.

Se você não tiver certeza sobre os valores de threshold e threshold_maximum para sua webcam, pode deixar o Motion ajustá-los para você. Para isso, adicione a variável threshold_tune e defina-a como “on”.

Um terminal mostrando as diferentes opções de threshold em pixels para o Motion.

Por fim, você pode configurar o Motion para também gravar os momentos antes e depois de detectar movimento. Para fazer isso, vá para as variáveis pre_capture e post_capture e defina seus valores para a quantidade de quadros adicionais que você deseja salvar.

Um terminal mostrando os quadros adicionais ao capturar imagens e vídeos no Motion.

Habilitando a Interface Web do Motion

O servidor Motion vem com uma interface web que permite monitorar sua webcam remotamente. Para habilitar isso, vá para a seção “Webcontrol” da configuração, e então defina o valor da variável webcontrol_localhost como “off”.

Role para baixo até a seção “Transmissão ao Vivo”, e então defina o valor de stream_localhost como “off”.

Um terminal mostrando as duas opções que você precisa desativar para permitir que sistemas remotos acessem o console web do Motion.

Nota: O Motion não possui verificações de autenticação para sua interface web. Assim, qualquer pessoa que conheça o endereço do seu servidor Motion pode visualizar sua webcam e controlar o serviço.

Gerenciando as Capturas Salvas Remotamente

Como mencionei anteriormente, a melhor maneira é salvar as imagens na sua pasta do Dropbox para que você possa acessá-las de qualquer lugar. No entanto, se você preferir que as imagens sejam enviadas para seu próprio servidor de arquivos (via FTP), pode usar o comando wput para enviar as imagens:

sudo apt install wput

Abra a configuração do seu servidor Motion, e então insira as seguintes linhas de código no final do arquivo:

on_picture_save wput ftp://SEU-NOME-DE-USUÁRIO:SEU-SENHA@SEU-ENDEREÇO-DO-SERVIDOR %f  
on_movie_end wput ftp://SEU-NOME-DE-USUÁRIO:SEU-SENHA@SEU-ENDEREÇO-DO-SERVIDOR %f

Um terminal mostrando os dois ganchos de script para salvar mídia capturada em um servidor remoto.

Iniciando e Testando o Servidor Motion

Certifique-se de salvar seu arquivo de configuração do Motion, e então execute o seguinte comando para iniciar o servidor:

sudo systemctl enable--now motion.service

Confirme que o servidor está funcionando corretamente abrindo um navegador web e navegando até o endereço IP da sua máquina seguido de “:8080.”

Uma captura de tela mostrando o console web do Motion.

Isso abrirá uma página mostrando o feed de vídeo atual da sua webcam junto com um menu contendo ações adicionais para seu servidor. Por exemplo, você pode clicar em Ação -> Captura para capturar uma imagem estática da sua webcam.

Uma captura de tela mostrando as diferentes ações que você pode realizar a partir do console web do Motion.

Teste se o Motion detecta e grava movimento da sua webcam passando um objeto na frente da sua câmera e verificando o conteúdo do seu diretório target_dir.

Uma captura de tela mostrando o Motion salvando sua mídia capturada em um diretório personalizado.

Há também uma transmissão ao vivo que você pode abrir tanto no seu reprodutor de mídia quanto no navegador web. Para acessar isso, navegue até o endereço IP da sua máquina seguido de “:8081.”

Uma captura de tela mostrando a transmissão de vídeo dedicada do Motion.

Transformar sua webcam comum em um sistema de detecção de movimento é apenas uma das coisas que você pode fazer com câmeras no Linux. Aprenda mais sobre alguns dos melhores aplicativos de webcam para Linux que você pode instalar e experimentar hoje.

Crédito da imagem: Bermix Studio via Unsplash. Todas as alterações e capturas de tela por Ramces Red.