Raspberry PI WebCam
Click here to comment see Self Driving RC Car
Webcam
lsusb
Bus 001 Device 004: ID 046d:082c Logitech, Inc. HD Webcam C615
Software
qv4l2 Videograbbing
see https://wiki.ubuntuusers.de/Videograbbing/
sudo apt-get install qv4l2
qv4l2
fswebcam
Installation
sudo apt-get install fswebcam
Script to take pictures (remotely)
#!/bin/bash
server=pichess
pic=chess$$.jpg
resolution=640x480
# https://raspberrypi.stackexchange.com/a/29284/11220 - skip some frames to adjust exposure
ssh $server fswebcam -r $resolution -S 10 -d /dev/video0 /tmp/$pic
scp $server:/tmp/$pic /tmp/$pic
open /tmp/$pic
motion
lsusb | grep cam
Bus 001 Device 005: ID 046d:0825 Logitech, Inc. Webcam C270
sudo apt-get install motion
v4l2-ctl -V
Format Video Capture:
Width/Height : 352/288
Pixel Format : 'MJPG' (Motion-JPEG)
Field : None
Bytes per Line : 0
Size Image : 102400
Colorspace : sRGB
Transfer Function : Default (maps to sRGB)
YCbCr/HSV Encoding: Default (maps to ITU-R 601)
Quantization : Default (maps to Full Range)
Flags :
cd /etc/motion
git init
git add *
git commit -a -m "initial checkin"
# edit motion.conf with your favorite editor
git diff motion.conf
diff --git a/motion.conf b/motion.conf
index 23c8810..b96df83 100644
--- a/motion.conf
+++ b/motion.conf
@@ -8,7 +8,7 @@
############################################################
# Start in daemon (background) mode and release terminal (default: off)
-daemon off
+daemon on
# File to store the process ID, also called pid file. (default: not defined)
process_id_file /var/run/motion/motion.pid
@@ -76,14 +76,14 @@ rotate 0
flip_axis none
# Image width (pixels). Valid range: Camera dependent, default: 320
-width 320
+width 352
# Image height (pixels). Valid range: Camera dependent, default: 240
-height 240
+height 288
# Maximum number of frames to be captured per second.
# Valid range: 2-100. Default: 100 (almost no limit).
-framerate 2
+framerate 30
# Minimum time in seconds between capturing picture frames from the camera.
# Default: 0 = disabled - the capture rate is given by the camera framerate.
@@ -458,7 +458,7 @@ stream_motion off
stream_maxrate 1
# Restrict stream connections to localhost only (default: on)
-stream_localhost on
+stream_localhost off
# Limits the number of images per connection (default: 0 = unlimited)
# Number can be defined by multiplying actual stream rate by desired number of seconds
# fix /etc/default/motion
cat /etc/default/motion
# set to 'yes' to enable the motion daemon
start_motion_daemon=yes
Uv4l trial on Buster
As of 2019-10-15 there is no official Buster support for uv4l yet see e.g. https://www.raspberrypi.org/forums/viewtopic.php?t=247305
As of 2020-01-21 there seems to be a work-around see https://blog.domski.pl/uv4l-on-raspberry-pi-running-debian-buster/
We will try using the commands for Raspberry Stretch
curl http://www.linux-projects.org/listing/uv4l_repo/lpkey.asc | sudo apt-key add -
echo "deb http://www.linux-projects.org/listing/uv4l_repo/raspbian/stretch stretch main" >> /etc/apt/sources.list
sudo apt-get update
sudo apt-get install uv4l
# do we need to update the firmware?
# sudo rpi-update
sudo apt-get install uv4l-server uv4l-uvc uv4l-xscreen uv4l-mjpegstream uv4l-dummy uv4l-raspidisp
sudo apt-get install uv4l-webrtc
# for raspi-cam (we are using webcam!)
# apt-get install uv4l-raspicam-extras
Check Webcam being identified
dmesg | grep video
[ 4.691736] videodev: Linux video capture interface: v2.00
[ 4.838925] bcm2835-codec bcm2835-codec: Device registered as /dev/video10
[ 4.844913] bcm2835-codec bcm2835-codec: Device registered as /dev/video11
[ 4.852532] bcm2835-codec bcm2835-codec: Device registered as /dev/video12
[ 4.989574] uvcvideo: Found UVC 1.00 device HD Webcam C615 (046d:082c)
[ 5.028207] uvcvideo 1-1.2:1.2: Entity type for entity Extension 5 was not initialized!
[ 5.028226] uvcvideo 1-1.2:1.2: Entity type for entity Processing 2 was not initialized!
[ 5.028238] uvcvideo 1-1.2:1.2: Entity type for entity Camera 1 was not initialized!
[ 5.028250] uvcvideo 1-1.2:1.2: Entity type for entity Extension 6 was not initialized!
[ 5.028261] uvcvideo 1-1.2:1.2: Entity type for entity Extension 7 was not initialized!
[ 5.028273] uvcvideo 1-1.2:1.2: Entity type for entity Extension 8 was not initialized!
[ 5.028968] usbcore: registered new interface driver uvcvideo
Configure
/etc/uv4l # git init
Initialized empty Git repository in /etc/uv4l/.git/
/etc/uv4l# git add *
/etc/uv4l# git commit -a -m "initial state"
[master (root-commit) 0e2dc87] initial state
2 files changed, 555 insertions(+)
create mode 100644 uv4l-raspicam.conf
create mode 100644 uv4l-uvc.conf
git diff uv4l-uvc.conf
diff --git a/uv4l-uvc.conf b/uv4l-uvc.conf
index c01824e..f00b6b6 100644
--- a/uv4l-uvc.conf
+++ b/uv4l-uvc.conf
@@ -54,8 +54,7 @@ frame-buffers = 4
# device-id = <vid>:<pid>
# alternative to 'device-path', vendor and product identifiers of the USB device
-
-
+device-id = 046d:0825
#################################
# streaming server options
#################################
System start script
uv4l.service unit
root@picarford:/etc/systemd/system# cat uv4l.service
[Unit]
Description=UV4L Webcam
[Service]
Type=simple
ExecStart=/usr/bin/uv4l -k --sched-rr --mem-lock --config-file=/etc/uv4l/uv4l-uvc.conf --driver uvc --driver-config-file=/etc/uv4l/uv4l-uvc.conf --server-option=--editable-config-file=/etc/uv4l/uv4l-uvc.conf --device=046d:0825
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=uv4l
Restart=on-abnormal
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
enable and start
sudo systemctl enable uv4l.service
sudo systemctl start uv4l.service