Published under the GNU GENERAL PUBLIC LICENSE
A Gnome Security Camera
Gspy retrieves images from a video4linux device and processes these
into a daily mpeg movie on the disk drive. Each image is recorded with
a time stamp to insure accurate real world correlation. Special motion
detection algorithms are used to reduce the size of the daily movies by
eliminating pictures with similar content as well as the normal compression
obtained via the mpeg process. The result is a time lapse video per day
with nonlinear time compression using only the images of interest. This
program will only run on Linux machines which support a video4linux-device
in 640x480 capture size. This software has been tested with the 2.4.0-test1
kernel, 2.4.0-test4 and the 2.2.16 kernel with the usb backport patch.
You should have the Berkeley MPEG Tools installed if you wish to generate
the MPEG files. Gspy can be used without the MPEG tools, as it will fill
a directory with jpg images that can be processed or viewed at a later
time. Versions from 0.1.6 include a user defined command that is executed
on each alarm. This command string can include a token(s) "%f%" that will get
replaced with the alarm picture filename. Typical uses would be to copy
the alarm picture to a remote site using ftp or scp, email the picture to
someone, play a sound annoucement... "Step away from the keyboard!", turn on
lights using a parallel port or X10 interface, or ???. Have FUN
Known Supported Devices:
Creative Labs Video Blaster WebCam 3 USB, Model CT6840
BT848 Grabber ( WinTV PCI Radio )
Hauppage PCI board - BT848
Philips USB WebCam - PCVC680K Vesta Pro one
Working with gspy 0.1.5 and Redhat 7.2 with kernel (2.4.9-13). Use pwc and pwcx modules.
Thanks to Hervé BOTERMAN, the PWC690 is now supported in version 0.1.5
Use "modprobe pwc size=vga fps=5" and "insmod -f pwcx-i386" to connect the webcam
to the usb port and set it by default to 640x480 and 5 frame per second.
The pwcx module must be loaded to enable image compression of the webcam.
- Matrox marvel g200 card and an Hitachi Hi8
Cherubini reports: I would like to let you know that gspy works for me, using linux debian
woody, kernel 2.4.6 with matrox marvel g200 card and an hitachi Hi8
Daniel reports that all that was needed was to build the kernel with
v4l, ov511 and usb-uhci modules, then modprobe usb-uhci, modprobe ov511
Thanks for gspy.
I just opened my DSB-C300 camera and tried to install it on my win2k
machine. Crash crash the darn thing wont even boot with the camera installed.
Well back to linux. RH 7.1 Sony PCG F430
all I had to do was:
mv /dev/video /dev/videodir
ln -s /dev/video0 /dev/video
and it all worked....
AVerMedia InterCam-Elite (OV511-based)
I tried your program and it works great.
Gspy will be used to catch a bike thief(-ves) who stole 6 bikes from
Anyway, it's a great program and it works without any extra afford on a
redhat 7.1 system with a (OV511-based) "AVerMedia InterCam-Elite":
The v4l driver is loaded automatic when the USB camera is plugged in the
port. The webcam supports 640x480 so the program works without
avaks AvCam USB-600 (OV511-based)
Thanks for your very nice program and installation instructions!
I'm using Redhat 7.1 (2.4.2-2). If you'd like to check out my
The only thing I had to do was link /dev/video->video0.
Maxell Maxcam USb(OV511)
Dexxa Webcam (USB 352*288)
see changes under "User Feedback" below for a patch.
Logitech QuickCam (352x288).
Blaine reports being able to compile the code and obtain a working system
with the logitech camera.
- Creative Webcam5 on Debian with with gnome2.
- Kensignton "svga webcam" using the se401 module on a linux 2.4.19
alejandro reports gspsy 0.1.6 works brilliantly with his kensignton camera.
- Intel CS330 Create and Share Camera
Ben reports the Intel driver
http://spca50x.sourceforge.net is still under development and there are
some issues with the brightness of the picture, but it still works.
- Philips ToUcam Pro (PCVC740K) with Red Hat 8.0/kernel 2.4.18-14
(compiled using instructions for the Red Hat 8.0 fixes)
Please drop me a line if you have success with your camera.
Version 0.1 - June 2 2000
- birth via the wonderful glade interface
- starting with kernel 2.4.0-test1-ac5 with ov511 patch cm3 by claudio
- webcam is the Creative Labs video Web Blaster III - USB
Version 0.1.1 - June 29 2000
-added image intensity normalization to counteract cameras AGC jumps.
-made first image init the reference image
-added mug shot pixmap to help about box
-added picture stats to status bar
Version 0.1.2 - July 18 2000
- added code to call mpeg encoder from file menu
- added code so that mpeg is generated in a child process (using nice)
- altered image intensity normalization... still getting alarms on jumps
of camera AGC under certain conditions.... needs more work
- updated defaults for alarms
- removed calls to sync. The USB driver seems to have stabilized enough
not to crash the kernel.
Version 0.1.4 Feb 24 2002
- support added for Philips cameras, requires user to uncomment the
#define PWC 1 statement in callbacks.c before compiling. ccvt.S and
ccvt.h added to project to support data conversions.
Thanks to Herve BOTERMAN
- default device changed to /dev/video0 as Redhat 7.2 uses /dev/video
as a directory
Version 0.1.5 Feb 25 2002
- updated main.c and callbacks.c to support automatic polling of camera
data types available. This helped to support the Philips cameras which
do not have RGB24 format data available. Source cahnges (#define PWC)
are no longer required. Thanks to Herve BOTERMAN.
Version 0.1.6 Aug 12 2002
- changed contact email address on about page
- changed version in configure.in
- next 2 options were suggested by a user ( Thanks Tim )
- added setup param for turning active alarm area box on display on/off
- added setup for a user command to be executed on alarms
(this can be anything from rsyncing a directory to a remote box, to
emailing a file)
- commented out some debug printing to the console
Version 0.1.7 Nov 20 2002 (recommended for Redhat 6,7,8,9)
- added a console version that runs without X or gnome installed
( see the console directory and main.c for building information )
The console version uses configuration that is imbedded in the source code.
Version 0.1.8 Jan 15 2005 (recommended for gnome2, 2.6 kernels)
- rebuilt/reconfigured project to build using a modern distribution. This
builds on my current development system:
glade 0.6.4 (sorry, havent had much luck porting to glade-2 yet)
automake (GNU automake) 1.4-p6
autoconf (GNU Autoconf) 2.59
gcc (GCC) 3.3.4 (Debian 1:3.3.4-9ubuntu5)
To Build This Project:
gspy-0.1.2-src.tar.gz(145920 bytes) or
gspy-0.1.3-src.tar.gz(192891 bytes) or
gspy-0.1.4-src.tar.gz(534302 bytes) or
gspy-0.1.5-src.tar.gz(200008 bytes) or
gspy-0.1.6-src.tar.gz(205802 bytes) or
gspy-0.1.7-src.tar.gz(222107 bytes) or
To build the application from the glade project in the gspy directory,
To run the application, enter gspy at the shell prompt. Gspy
should open the video device and then popup the runtime display window
similar to that shown above. If the open fails on the video device, gspy
will exit with an error message. You may need to check and see that the
usb stack is loaded if you are using a usb web camera device. To get your
usb camera running, you may find the Linux USB guide useful (see reference
section below). Gspy is quite cpu intensive due the the image processing
load. I run it on a 500mhz PIII and it puts a 25% load blip on every 2
seconds. It should run on most pentium class computers. Gspy creates subdirectories
under a user specified location for each date it runs. All jpegs captured
for the day are placed in the subdirectory. Use the menu option file/Makempeg
to select one of the daily directories and start the mpeg generation process
(done in the background at a nice priority). You must have the Berkeley
mpeg tools installed (mpeg_encode binary) for this command to work.
help generating the internationalization translations would be appreciated.
add support for multiple USB cameras, maybe 4 as a first pass
automate the mpeg file generation once per day (currently a manual process)
improve compensation for camera AGC jumps... causes a lot of false alarms
under certain lighting conditions
implement video for linux 2 device interface
reverse engineer compression modes and update ov511 driver to get faster
support for smaller video image sizes
support alternate video fomats such as avi, motion jpeg or divx for the "action movie"
write the user documentation
Builds fail on RH 7.3 and 8.0 (gettext version 0.11.xx)
Example tests and logs for checking usb setup
USB device questions:
Frequently Asked Questions relating to gspy
Car thief stars on gspy
Changing Gspy for Non 640x480 Cameras
Homepage -- gspy.sourceforge.net
CVS server -- cvs.gspy.sourceforge.net
Linux USB Guide
Linux OV511 Driver
Omnivision OV511 Advanced
camera USB bridge, data sheet
October 2002 Linux Journal Article about gspy(163k).
Who We Are and Where to Find Us
The Vital Statistics
||Lawrence P. Glaister P.Eng. VE7IT
|1462 Madrona Drive
|Nanoose Bay B.C.
|Canada V9P 9C9