top of page
Search

Blog One: Adding a Video Camera

  • Writer: William Pretty
    William Pretty
  • Jul 12, 2024
  • 3 min read

Updated: Jul 17, 2024
















Install the video capture Software:


Install the software with the following command: sudo apt install motion. This will install a program called Motion which is a light weight video capture package compatible with the Raspberry Pi Zero. The command will create several files and directories. The capture software can be configured by editing the motion.conf file which can be found in the /etc/motion/ directory.


Motion.conf:


#

# This config file was generated by motion 4.5.1

# 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.

video_device /dev/video0



# Parameters to control video device. See motion_guide.html

; video_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_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 15


# 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


############################################################

# 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 45


# 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 8080


# 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 8081


# Restrict stream connections to the localhost.

stream_localhost off


##############################################################

# 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


There are some parameters which must be changed in this file. One such parameter is the stream_localhost on parameter. This should be changed to off so that you can access the camera from your local network. We will only be using one USB camera with this setup so the camera config files have been commented out.


Recommendations:


I would recommend a high resolution USB camera. The USB 2 cable can be meters in length. The cable for the Pi Camera is quite short for the Raspberry Pi Zero.

I would recommend a 32Gb SD card as a minimum if you intend to save high resolution videos and pictures.

A Class 10 SD card should be fast enough and capable of numerous writes before it wears out. These cards tend to be used in portable devices such as phones and tablets.

You can adjust the threshold 1500 parameter until you find a setting that triggers a capture and does not result in false triggers.

 
 
 

Comments


bottom of page