How to Repeatedly capture fixed screen region to sequence of images
You can use screencapture
commandline utility. Create an Automator Service (takes no input) which will do a shell command and assign keyboard shortcut to it.
The shell script will look like this:
/usr/sbin/screencapture -R0,0,1000,400 /path/to/save/FileName$(date +"%m_%d_%Y_%H_%M_%S_%s").png
screencapture
has -R
modifier not listed in man
but it's listed in help as:
-R<x,y,w,h> capture screen rect
The values I used above captured this image which also shows how the rect coordinates worked.
Change x,y,w,h
values for those You need.
The date +"%m_%d_%Y_%H_%M_%S_%s"
adds a timestamp to the file name
You can actually use Screencapture to find the rect you want by using cmd +shift+4 which will give you some cross hairs with the numbers on for click drag release capture rect.
In Terminal.app typing: /usr/sbin/screencapture -h
will give you the help documentation
usage: screencapture [-icMPmwsWxSCUtoa] [files]
-c force screen capture to go to the clipboard
-C capture the cursor as well as the screen. only in non-interactive modes
-d display errors to the user graphically
-i capture screen interactively, by selection or window
control key - causes screen shot to go to clipboard
space key - toggle between mouse selection and
window selection modes
escape key - cancels interactive screen shot
-m only capture the main monitor, undefined if -i is set
-M screen capture output will go to a new Mail message
-o in window capture mode, do not capture the shadow of the window
-P screen capture output will open in Preview
-s only allow mouse selection mode
-S in window capture mode, capture the screen not the window
-t<format> image format to create, default is png (other options include pdf, jpg, tiff and other formats)
-T<seconds> Take the picture after a delay of <seconds>, default is 5
-w only allow window selection mode
-W start interaction in window selection mode
-x do not play sounds
-a do not include windows attached to selected windows
-r do not add dpi meta data to image
-l<windowid> capture this windowsid
-R<x,y,w,h> capture screen rect
files where to save the screen capture, 1 file per screen
Have you considered batch cropping the screenshots? For example, using Imagemagick (which you can install via homebrew: brew install imagemagick
):
cp original.png test.png #backup original!
mogrify -crop 800x600+100+200 +repage test.png
where 800x600
is the size of the region, and +100+200
the X/Y offset. This can be applied to several images at once by simply specifying several filenames. Note that this will modify your images (in-place), so operate on copies.