#!/usr/bin/perl $|=1; #$file="/home/fine/www/webcam.jpg"; $file="/var/tmp/finewebcam.jpg"; print "HTTP/1.1 200 OK\n"; print "Content-type: multipart/x-mixed-replace;boundary=spyonmeyoufuckingpervert\n"; print "Connection: Keep-Alive\n"; print "\n"; print "--spyonmeyoufuckingpervert\n"; while (1) { $done=0; while(! $done) { @foo=stat($file); if ($foo[9] != $mtime) { $mtime=$foo[9]; $size=$foo[7]; $done=1; } else { #check to see if camera is offline if ((time-$foo[9]) > 120) { system("/soft/netpbm/bin/pbmtext -font /home/fine/fonts/bigpalm-bold.bdf 'Camera is OFFLINE!' | /soft/netpbm/bin/pnmcrop | /soft/netpbm/bin/pnmpad -white -l1 -r1 -t1 -b1 | /soft/netpbm/bin/ppmchange black red > /tmp/webcamoffline.ppm 2> /dev/null"); system("/usr/local/bin/djpeg $file | /soft/netpbm/bin/pnmpaste /tmp/webcamoffline.ppm 271 0 | /usr/local/bin/cjpeg -quality 80 > /tmp/offline.jpg"); print "Content-type: image/jpeg\n"; print "Content-length: $size\n"; print "\n"; open(JPG,"/tmp/offline.jpg"); while(read(JPG,$buf,8192)>0) { print $buf; } close(JPG); #don't print separator, that makes netscape expect a new file exit(0); } sleep(5); } } print "Content-type: image/jpeg\n"; print "Content-length: $size\n"; print "\n"; open(JPG,$file); while(read(JPG,$buf,8192)>0) { print $buf; } close(JPG); print "\n--spyonmeyoufuckingpervert\n"; }