- fswebcam – https://www.raspberrypi.org/documentation/usage/webcams/
- motion – https://scottontechnology.com/raspberry-pi-webcam-server-using-motion/
- motionEyeOS – coming soon
This tutorial is for a Raspberry Pi running the out of the box Raspbian OS.
Download and install the Motion package using the following command:
sudo apt-get install motion
Optional, but recommended if you are just starting out. Make a backup of the out of the box configuration file. Change to the motion directory with:
and copy the default motion.conf file:
sudo cp motion.conf motion.conf.bak
Next we need to make some changes to the configuration file motion.conf. The nano file editor comes pre-installed so we’ll use it:
sudo nano /etc/motion/motion.conf
Find the following lines and make the following changes. (Ctrl+W is search in nano)
- daemon off -> daemon on (this will run allow the program to run as a service)
- stream_localhost on -> stream_localhost off (this will allow you to view the stream webpage from other computers)
Other optional/tweakable parameters:
- framerate 15 (changes the number of frames per second (fps) that are captured)
- width 640 (This changes the width of the images)
- height 480 (This changes the height of the images)
- target_dir /var/lib/motion (This is where Motion stores images and videos when it detects motion, this directory needs to be writable)
Save your changes
Now we need to enable the motion daemon by editing the motion file:
sudo nano /etc/default/motion
Make the following change:
- start_motion_daemon=no -> start_motion_daemon=yes
Next we need to make sure the motion capture directory is writable
sudo chmod 777 /var/lib/motion
Now make sure the camera is connected and start the service with the command:
sudo service motion start
To stop the service, the command is:
sudo service motion stop
Now you can view the camera from a browser on the Pi (or other computer if stream_localhost was set to off) by connecting to your Pi’s IP address and Motion’s default port 8081
To find your Pi’s IP address you can type the following in the terminal (also 5 Ways to Check the IP Address in Linux):
ip addr show
and look for the line that starts with inet
- Webpage is not available or error connection refused.
- Check to make sure you turned the localhost restriction off (stream_localhost off) in the motion.conf file.
- The webpage crashes every time motion is detected.
- Check to make sure the motion directory is writable, any external drives are plugged in and mounted.
If you made a backup of the original motion.conf file and want to restore it, you may do so by changing to the motion directory:
and copying the backup file over your modified version:
sudo cp motion.conf.bak motion.conf
If you get any “Permission denied” messages add sudo to the beginning of your command
The webpage with the webcam stream does not work in Microsoft’s Internet Explorer.
Error logging (http://www.lavrsen.dk/foswiki/bin/view/Motion/ErrorLogging)
Motion reports errors to the console when it runs in non-daemon mode. And it outputs even more information when run in setup mode.
Error logging has been implemented so that errors during daemon (background) mode are logged in the syslog.
The syslog is in most Linux systems the file /var/log/messages (e.g. RedHat/Fedora) or /var/log/syslog and /var/log/user.log (e.g. Debian).
Based on the tutorial from pimylifeup: http://pimylifeup.com/raspberry-pi-webcam-server/