The following method describes how to set-up a webcam that can be used on Arch Linux. Its useful to already have :
- NTP configured and running
- Configured correct timezone e.g.
- Update the latest packages
Webcam Setup
- Connect the webcam to the USB port
- You should see it listed under :
Bus 001 Device 004: ID 19ff:0102 Dynex 1.3MP Webcam
- If the camera is not listed check dmesg
[ 5.401492] uvcvideo: Found UVC 1.00 device Dynex 1.3MP Webcam (19ff:0102)
[ 5.414733] input: Dynex 1.3MP Webcam as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/input/input0
[ 5.414990] usbcore: registered new interface driver uvcvideo
Install Motion
- Motion is a software motion detector which grabs images from video4linux devices and/or from webcams
$ pacman -S motion
- This will install ~116MB of sotfware and dependacies
Install ffmpeg
- Ffmpeg is a complete and free Internet live audio and video broadcasting solution for Linux
$ pacman -S ffmpeg
- This will install ~30MB of sotfware and dependacies
Create log
- Create the log file under /var/log
$ sudo touch /var/log/motion.log
$ sudo chmod 777 /var/log/motion.log
Motion Configuration
- Backup existing config file :
$ sudo cp /etc/motion/motion.conf /etc/motion/motion.backup
- Change /etc/motion/motion.conf file with the following as an example :
daemon off
minimum_frame_time 0
pre_capture 0
post_capture 0
output_normal on
quality 75
ffmpeg_cap_new off
ffmpeg_timelapse 0
ffmpeg_variable_bitrate 0
target_dir /data/webcam/motion
webcam_port 8081
control_port 8080
webcam_localhost off
width 320
height 240
- target_dir : target base directory for pictures
- Create target base directory for pictures
$ sudo mkdir -p /data/webcam/motion
- Start motion and go to port 8081 of your local IP and the web cam should be working :
$ sudo motion &
Startup Script
- Example Startup script
$ cat StartWebCamMonitor.sh
#!/bin/bash
LOG=/var/log/motion.log
sudo echo "Start Motion Script" `date` >> /var/log/motion.log
sudo /usr/bin/motion 2>&1 | tee -a $LOG &
Shutdown Script
- Example Shutdown script
$ cat StopWebCamMonitor.sh
#!/bin/bash
LOG=/var/log/motion.log
# Script details
sudo echo "Stop Motion Script" `date` >> /var/log/motion.log
sudo pkill motion 2>&1 | tee -a $LOG
Clean Up Script
- Example Clean up script
#!/bin/bash
> /var/log/motion.log
sudo rm -rf /data/webcam/motion/
sudo mkdir /data/webcam/motion/
Schedule WebCam to Run daily
- Use 'crontab -e' to update when you want the scripts to run
00 07 * * 1-5 ~/bin/StartWebCamMonitor.sh > /dev/null 2>&1 &
00 19 * * 1-5 ~/bin/StopWebCamMonitor.sh > /dev/null 2>&1 &
20 19 * * 1-5 ~/bin/CleanUpWebCamMonitor.sh > /dev/null 2>&1 &
No comments:
Post a Comment