fbpixel
Etiquetas: ,
0
(0)

Neste tutorial, veremos como configurar um fluxo de vídeo com o Motion a partir de um Raspberry Pi. Este tutorial é compatível com qualquer sistema Linux.

Hardware

  • Raspberry Pi (ou outra máquina com Linux)
  • Câmara USB ou câmara CSI

Descrição do movimento

O programa Motion foi desenvolvido como um sistema de vigilância. Permite observar várias câmaras, detetar movimentos em cada câmara e gravar imagens ou vídeos nesse momento.

Esta ferramenta permite

  • transmitir vídeos para visualização remota
  • detetar movimentos em cada câmara
  • gravar imagens ou vídeos das câmaras

Instalação de movimento

Se este ainda não for o caso na sua versão do sistema operativo, pode instalar o Motion utilizando o seguinte comando.

sudo apt-get install motion

Verificar a instalação

motion --version

Se ocorrer um erro sobre a permissão de acesso ao ficheiro

Pode apagar o ficheiro e reiniciar

rm -r /var/log/motion

ou conceder direitos de acesso

sudo chmod -R 777 /var/log/motion
sudo chmod -R 777 /var/lib/motion

ou criar outro ficheiro de registo e adicionar o seu caminho ao ficheiro motion.conf

sudo nano ~/.motion/motion.log

Configuração do movimento

Toda a configuração do movimento é efectuada no

sudo cp /etc/motion/motion.conf /etc/motion/motion.conf.bckp
sudo nano /etc/motion/motion.conf

Os principais parâmetros incluem

  • video_device para definir a câmara a utilizar
  • parâmetros de captura (altura, largura, velocidade de fotogramas)
  • texto a apresentar na imagem da câmara (text_left, text_right, etc.)
  • parâmetros de deteção de movimento (limiar, event_gap, etc.)
  • o ficheiro log_file para escrever os registos (predefinição:
  • o diretório target_dir para guardar imagens e vídeos (predefinição;
  • picture_output para captar imagens aquando da deteção
  • video_output para gravar vídeos

N.B.: todos os parâmetros de configuração podem ser consultados no sítio Web oficial

Ir mais longe na configuração

Há um grande número de parâmetros no ficheiro motion.conf que lhe permitem adaptar a aquisição de imagens às suas necessidades

Se forem utilizadas várias câmaras, é possível definir um conjunto de parâmetros para cada câmara (/etc/motion/camera1.conf)

Iniciar o movimento a partir do terminal

sudo motion
sudo motion -c ~/.motion/motion.conf #to use another configuration file
sudo killall motion #to end the process

(utilizar ~/.motion/motion.conf por defeito, se existir, caso contrário /etc/motion/motion.conf)

Iniciar o Motion como um serviço

sudo service motion start
sudo service motion status 
sudo service motion restart
sudo service motion stop

N.B.: No ficheiro /etc/motion/motion.conf, deixe a opção daemon definida como OFF.

Criar um fluxo de vídeo com o Motion

Alterar as definições predefinidas em /etc/motion/motion.conf

webcontrol_port
 8080 # define http port for camera web control http://<ip_server>:<webcontrol_port>
webcontrol_localhost on # define if accessible only from the same machine
stream_port 8081 # define http port for camera display http://<ip_server>:<stream_port>
stream_localhost off
stream_auth_method
 0
stream_authentication <username>:<password>

N.B.: se ativar o webcontrol a partir do exterior da máquina, aconselhamos vivamente a ativar a autenticação no fluxo

Não se esqueça de reiniciar o serviço motion depois de fazer quaisquer alterações ao ficheiro motion.conf.

sudo service motion restart

Se introduzir o endereço IP da sua máquina Linux (aqui, 192.168.1.92), seguido do número da porta definido em stream_port, pode observar o fluxo de vídeo em movimento.

Se não estiver a utilizar movimento contínuo, pode gravar um vídeo sem esperar que seja detectado movimento (emulate_motion on, event_gap -1).

Sugestões: pode definir uma imagem de baixa qualidade para melhorar a largura de banda do fluxo (stream_quality 45) mas manter uma imagem de boa qualidade para a gravação de vídeo (video_quality 100).

Ficheiro motion.conf para streaming

/etc/motion/motion.conf (com webcontrol local e portas 8553 e 8554)

# Rename this distribution example file to motion.conf
#
# This config file was generated by motion 4.3.2
# Documentation:  /usr/share/doc/motion/motion_guide.html
#
# This file contains only the basic configuration options to get a
# system working.  There are many more options available.  Please
# consult the documentation for the complete list of all options.
#

############################################################
# System control configuration parameters
############################################################

# Start in daemon (background) mode and release terminal.
daemon off

# Start in Setup-Mode, daemon disabled.
setup_mode off

# File to store the process ID.
; pid_file value

# File to write logs messages into.  If not defined stderr and syslog is used.
log_file /var/log/motion/motion.log

# Level of log messages [1..9] (EMG, ALR, CRT, ERR, WRN, NTC, INF, DBG, ALL).
log_level 6

# Target directory for pictures, snapshots and movies
target_dir /var/lib/motion

# Video device (e.g. /dev/video0) to be used for capturing.
videodevice /dev/video0

# Parameters to control video device.  See motion_guide.html
; vid_control_params value

# The full URL of the network camera stream.
; netcam_url value

# Name of mmal camera (e.g. vc.ril.camera for pi camera).
; mmalcam_name value

# Camera control parameters (see raspivid/raspistill tool documentation)
; mmalcam_control_params value

############################################################
# Image Processing configuration parameters
############################################################

# Image width in pixels.
width 640

# Image height in pixels.
height 480

# Maximum number of frames to be captured per second.
framerate 10

# Text to be overlayed in the lower left corner of images
text_left CAMERA1

# Text to be overlayed in the lower right corner of images.
text_right %Y-%m-%d\n%T-%q - %{fps}

text_scale 3
############################################################
# Motion detection configuration parameters
############################################################

# Always save pictures and movies even if there was no motion.
emulate_motion off

# Threshold for number of changed pixels that triggers motion.
threshold 1500

# Noise threshold for the motion detection.
; noise_level 32

# Despeckle the image using (E/e)rode or (D/d)ilate or (l)abel.
despeckle_filter EedDl

# Number of images that must contain motion to trigger an event.
minimum_motion_frames 1

# Gap in seconds of no motion detected that triggers the end of an event.
event_gap 60

# The number of pre-captured (buffered) pictures from before motion.
pre_capture 3

# Number of frames to capture after motion is no longer detected.
post_capture 0

############################################################
# Script execution configuration parameters
############################################################

# Command to be executed when an event starts.
; on_event_start value

# Command to be executed when an event ends.
; on_event_end value

# Command to be executed when a movie file is closed.
; on_movie_end value

############################################################
# Picture output configuration parameters
############################################################

# Output pictures when motion is detected
picture_output off

# File name(without extension) for pictures relative to target directory
picture_filename %Y%m%d%H%M%S-%q

############################################################
# Movie output configuration parameters
############################################################

# Create movies of motion events.
movie_output on

# Maximum length of movie in seconds.
movie_max_time 60

# The encoding quality of the movie. (0=use bitrate. 1=worst quality, 100=best)
movie_quality 100

# Container/Codec to used for the movie. See motion_guide.html
movie_codec mkv

# File name(without extension) for movies relative to target directory
movie_filename %t-%v-%Y%m%d%H%M%S

############################################################
# Webcontrol configuration parameters
############################################################

# Port number used for the webcontrol.
webcontrol_port 8553

# Restrict webcontrol connections to the localhost.
webcontrol_localhost on

# Type of configuration options to allow via the webcontrol.
webcontrol_parms 0

############################################################
# Live stream configuration parameters
############################################################

# The port number for the live stream.
stream_port 8554

# Restrict stream connections to the localhost.
stream_localhost off

stream_quality 100

##############################################################
# Camera config files - One for each camera.
##############################################################
; camera /usr/etc/motion/camera1.conf
; camera /usr/etc/motion/camera2.conf
; camera /usr/etc/motion/camera3.conf
; camera /usr/etc/motion/camera4.conf

##############################################################
# Directory to read '.conf' files for cameras.
##############################################################
; camera_dir /usr/etc/motion/conf.d

Aplicações

  • Criar um sistema de videovigilância
  • Utilização do MotionEye OS

Fontes

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?