.TH RASPISTILL 1 . .SH NAME raspistill \- takes still JPEG captures with the Pi Camera Module . . .SH SYNOPSIS .SY raspistill .OP \-3d mode .OP \-3dswap .OP \-a flags|text .OP \-ae size,fg,bg .OP \-ag value .OP \-awb mode .OP \-awbg b,r .OP \-bm .OP \-br value .OP \-cfx u:v .OP \-co value .OP \-cs camera .OP \-d ms .OP \-dec .OP \-dg value .OP \-dn screen .OP \-drc value .OP \-dt .OP \-e format .OP \-ev value .OP \-ex mode .OP \-f .OP \-fli mode .OP \-fp .OP \-fs num .OP \-g .OP \-gc .OP \-gps .OP \-gs scene .OP \-gw x,y,w,h .OP \-h size .OP \-hf .OP \-ifx effect .OP \-ISO value .OP \-k .OP \-l filename .OP \-md mode .OP \-mm mode .OP \-n .OP \-o filename .OP \-op opacity .OP \-p x,y,w,h .OP \-q quality .OP \-r .OP \-roi x,y,w,h .OP \-rot value .OP \-rs num .OP \-s .OP \-sa value .OP \-set .OP \-sh value .OP \-ss value .OP \-st .OP \-t ms .OP \-th x:y:q .OP \-tl ms .OP \-ts .OP \-v .OP \-vf .OP \-w size .OP \-x key=value .YS . .SY raspistill .OP \-? .SY raspistill .OP \-\-help .YS . . .SH DESCRIPTION .B raspistill is a command line utility for capturing still images from the Raspberry Pi Camera Module (any version). It has numerous options which can be used to customize the capture process, the preview display, or to perform more complex operations like time-lapse or triggered captures. . . .SH OPTIONS The options documented in the following sections are specific to the .B raspistill utility, or commonly used with it. For full details of the other options (which are common to all the camera utilities), please refer to the .BR raspicam (7) manual page. . . .SH GENERAL OPTIONS . .TP .BR \-? ", " \-\-help Display a concise description of all parameters . .TP .BR \-bm ", " \-\-burst Sets burst capture mode. This prevents the camera from returning to preview mode in between captures, meaning that captures can be taken closer together. . .TP .BR \-d ", " \-\-demo " [\fIms\fR]" This options cycles through the range of camera options. No capture is taken, and the demo will end at the end of the timeout period, irrespective of whether all the options have been cycled. The time between cycles should be specified as a millisecond value. . .TP .BR \-e ", " \-\-encoding " \fIformat\fR" Valid options are .IR jpg " (default)," .IR bmp , .IR gif ", and" .IR png . Note that only the JPEG format .RI ( "-e jpg" ) is hardware accelerated. All other image types will take much longer to save. Also note that the filename suffix is completely ignored when deciding the encoding of a file. . .TP .BR \-x ", " \-\-exif " \fIkey=value\fR" Allows the insertion of specific EXIF tags into the JPEG image. You can have up to 32 EXIF tag entries. This is useful for tasks like adding GPS metadata. For example, to set the longitude: .IP .EX --exif GPS.GPSLongitude=5/1,10/1,15/1 .EE .IP would set the longitude to 5 degs, 10 minutes, 15 seconds. See .B [EXIF] documentation for more details on the range of tags available; the supported tags are as follows: .RS .TP .B IFD0. .TQ .B IFD1. ImageWidth, ImageLength, BitsPerSample, Compression, PhotometricInterpretation, ImageDescription, Make, Model, StripOffsets, Orientation, SamplesPerPixel, RowsPerString, StripByteCounts, XResolution, YResolution, PlanarConfiguration, ResolutionUnit, TransferFunction, Software, DateTime, Artist, WhitePoint, PrimaryChromaticities, JPEGInterchangeFormat, JPEGInterchangeFormatLength, YCbCrCoefficients, YCbCrSubSampling, YCbCrPositioning, ReferenceBlackWhite, Copyright .TP .B EXIF. ExposureTime, FNumber, ExposureProgram, SpectralSensitivity, ISOSpeedRatings, OECF, ExifVersion, DateTimeOriginal, DateTimeDigitized, ComponentsConfiguration, CompressedBitsPerPixel, ShutterSpeedValue, ApertureValue, BrightnessValue, ExposureBiasValue, MaxApertureValue, SubjectDistance, MeteringMode, LightSource, Flash, FocalLength, SubjectArea, MakerNote, UserComment, SubSecTime, SubSecTimeOriginal, SubSecTimeDigitized, FlashpixVersion, ColorSpace, PixelXDimension, PixelYDimension, RelatedSoundFile, FlashEnergy, SpatialFrequencyResponse, FocalPlaneXResolution, FocalPlaneYResolution, FocalPlaneResolutionUnit, SubjectLocation, ExposureIndex, SensingMethod, FileSource, SceneType, CFAPattern, CustomRendered, ExposureMode, WhiteBalance, DigitalZoomRatio, FocalLengthIn35mmFilm, SceneCaptureType, GainControl, Contrast, Saturation, Sharpness, DeviceSettingDescription, SubjectDistanceRange, ImageUniqueID .TP .B GPS. GPSVersionID, GPSLatitudeRef, GPSLatitude, GPSLongitudeRef, GPSLongitude, GPSAltitudeRef, GPSAltitude, GPSTimeStamp, GPSSatellites, GPSStatus, GPSMeasureMode, GPSDOP, GPSSpeedRef, GPSSpeed, GPSTrackRef, GPSTrack, GPSImgDirectionRef, GPSImgDirection, GPSMapDatum, GPSDestLatitudeRef, GPSDestLatitude, GPSDestLongitudeRef, GPSDestLongitude, GPSDestBearingRef, GPSDestBearing, GPSDestDistanceRef, GPSDestDistance, GPSProcessingMethod, GPSAreaInformation, GPSDateStamp, GPSDifferential .TP .B EINT. InteroperabilityIndex, InteroperabilityVersion, RelatedImageFileFormat, RelatedImageWidth, RelatedImageLength .RE . .TP .BR \-fp ", " \-\-fullpreview This runs the preview using the full resolution capture mode. Maximum frames per second in this mode is 15fps, and the preview will have the same field of view as the capture. Captures should happen more quickly, as no mode change should be required. This feature is currently under development. . .TP .BR \-h ", " \-\-height " \fIsize\fR" Set the image height to .IR size . . .TP .BR \-k ", " \-\-keypress The camera is run for the requested time .RI ( \-t ), and a capture can be initiated throughout that time by pressing the Enter key. Pressing X then Enter will exit the application before the timeout is reached. If the timeout is set to 0, the camera will run indefinitely until the user presses X then Enter. Using the verbose option .RI ( \-v ) will display a prompt asking for user input, otherwise no prompt is displayed. . .TP .BR \-l ", " \-\-latest " \fIfilename\fR" Makes a file system link under this name to the latest frame. . .TP .BR \-o ", " \-\-output " \fIfilename\fR" Specifies the output filename. If not specified, no file is saved. If the filename is \(lq\-\(rq, then all output is send to stdout. . .TP .BR \-q ", " \-\-quality " \fIvalue\fR" Sets the JPEG compression quality from 0 to 100. 100 is nearly uncompressed, 75 is a good all-round value. . .TP .BR \-r ", " \-\-raw This option inserts the raw Bayer data from the camera into the JPEG metadata. . .TP .BR \-rs ", " \-\-restart " \fInum\fR" Sets the JPEG restart marker interval to a specific value. Can be useful for lossy transport streams because it allows a broken JPEG file to still be partially displayed. . .TP .BR \-s ", " \-\-signal The camera is run for the requested time .RI ( -t ), and a capture can be initiated throughout that time by sending a USR1 signal to the camera process. This can be done using the .BR killall (1) command. For example: .IP .EX killall -USR1 raspistill .EE . .TP .BR \-th ", " \-\-thumb " \fIx:y:q\fR" Allows specification of the thumbnail image inserted into the JPEG file. If not specified, defaults are a size of 64x48 at quality 35. . If .I \-\-thumb none is specified, no thumbnail information will be placed in the file. This reduces the file size slightly. . .TP .BR \-t ", " \-\-timeout " \fIms\fR" The program will run for the specified length of time, in milliseconds. It then takes the capture and saves it if an output is specified. If a timeout value is not specified, then it is set to 5 seconds .RI ( "\-t 5000" ). Note that low values (less than 500ms, although it can depend on other settings) may not give enough time for the camera to start up and provide enough frames for the automatic algorithms like AWB and AGC to provide accurate results. . If set to 0, the preview will run indefinitely, until stopped with Ctrl-C. In this case no capture is made. . .TP .BR \-v ", " \-\-verbose Outputs debugging/information messages during the program run. . .TP .BR \-w ", " \-\-width " \fIsize\fR" Set the image width to .IR size . . . .SH TIMELAPSE OPTIONS . .TP .BR \-tl ", " \-\-timelapse " \fIms\fR" The specific value is the time between shots in milliseconds. Note that you should specify .I %04d at the point in the filename where you want a frame count number to appear. So, for example, the code below will produce a capture every 2 seconds, over a total period of 30s, named \(lqimage0001.jpg\(rq, \(lqimage0002.jpg\(rq and so on, through to \(lqimage0015.jpg\(rq: .IP .EX -t 30000 -tl 2000 -o image%04d.jpg .EE .IP Note that the .I %04d indicates a 4-digit number, with leading zeroes added to make the required number of digits. So, for example, .I %08d would result in an 8-digit number. . If a timelapse value of 0 is entered, the application will take pictures as fast as possible. Note that there's an minimum enforced pause of 30ms between captures to ensure that exposure calculations can be made. . .TP .BR \-dt ", " \-\-datetime Instead of a simple frame number, the timelapse .RI ( \-tl ) filenames will use a date/time value of the format mmddHHMMSS, where mm is the month, dd is the day of the month, HH is the hour, MM is the minute, and SS is the second. . .TP .BR \-fr ", " \-\-framestart " \fInum\fR" Specifies the first frame number in the timelapse .RI ( \-tl ). Useful if you have already saved a number of frames, and want to start again at the next frame. . .TP .BR \-ts ", " \-\-timestamp Instead of a simple frame number, the timelapse .RI ( \-tl ) file names will use a single number which is the Unix timestamp, i.e. the seconds since 1970. . . .SH GL OPTIONS . .TP .BR \-g ", " \-\-gl Draw preview to texture instead of using video render component. . .TP .BR \-gc ", " \-\-glcapture Capture the GL frame-buffer instead of the camera image. . .TP .BR \-gs ", " \-\-glscene " \fIscene\fR" Select the GL scene which can be .IR square , .IR teapot , .IR mirror , .IR yuv , .IR sobel ", or" .IR vcsm_square . . .TP .BR \-gw ", " \-\-glwin " \fIx,y,w,h\fR" Specifies the GL window settings as an .I x,y location and a width and height. . . .SH EXIT STATUS . .IP 0 Application ran successfully .RB ( EX_OK ) .IP 64 Bad command line parameter .RB ( EX_USAGE ) .IP 70 Software or camera error .RB ( EX_SOFTWARE ) .IP 130 Application terminated by Ctrl-C . . .SH EXAMPLES . By default, captures are done at the highest resolution supported by the sensor. This can be changed using the .I \-w and .I \-h command line options. . .TP .B raspistill \-t 2000 \-o image.jpg Take a default capture after 2s (times are specified in milliseconds) on the viewfinder, saving in image.jpg. . .TP .B raspistill \-t 2000 \-o image.jpg \-w 640 \-h 480 Take a capture at a different resolution. . .TP .B raspistill \-t 2000 \-o image.jpg \-q 5 Reduce the quality considerably to reduce file size. . .TP .B raspistill \-t 2000 \-o image.jpg \-p 100,100,300,200 Force the preview to appear at coordinate 100,100, with width 300 pixels and height 200 pixels. . .TP .B raspistill \-t 2000 \-o image.jpg \-n Disable the preview entirely. . .TP .B raspistill \-t 2000 \-o image.png –e png Save the image as a PNG file (lossless compression, but slower than JPEG). Note that the filename suffix is ignored when choosing the image encoding. . .TP .B raspistill \-t 2000 \-o image.jpg \-x IFD0.Artist=Boris \-x GPS.GPSAltitude=1235/10 Add some EXIF information to the JPEG. This sets the Artist tag name to Boris, and the GPS altitude to 123.5m. Note that if setting GPS tags you should set as a minimum GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef, GPSAltitude, and GPSAltitudeRef. . .TP .B raspistill \-t 2000 \-o image.jpg \-ifx emboss Set an emboss image effect. . .TP .B raspistill \-t 2000 \-o image.jpg \-cfx 128:128 Set the U and V channels of the YUV image to specific values (128:128 produces a greyscale image). . .TP .B raspistill \-t 2000 Run preview for 2s, with no saved image. . .TP .B raspistill \-t 600000 \-tl 10000 \-o image_num_%03d_today.jpg \-l latest.jpg Take a time-lapse picture, every 10 seconds for 10 minutes (10 minutes = 600000ms), naming the files \(lqimage_num_001_today.jpg\(rq, \(lqimage_num_002_today.jpg\(rq and so on, with the latest picture also available under the name \(lqlatest.jpg\(rq. . .TP .B raspistill \-t 2000 \-o \- Take a picture and send the image data to stdout. . .TP .B raspistill \-t 2000 \-o \- > my_file.jpg Take a picture and send the image data to a file. . .TP .B raspistill \-t 0 \-k \-o my_pics%02d.jpg Run the camera forever, taking a picture when Enter is pressed. . . .SH SEE ALSO .BR raspicam (7), .BR raspivid (1), .BR raspividyuv (1), .BR raspiyuv (1), .BR vcgencmd (1), .B [SOURCE] . . .SH REFERENCES .TP .B [EXIF] https://en.wikipedia.org/wiki/Exif . .TP .B [SOURCE] https://www.raspberrypi.org/\:documentation/\:raspbian/\:applications/\:camera.md