scheckmedia / CameraControllerApi

The CameraControlerApi is an attempt to control a DSLR via REST functionality.
112 stars 24 forks source link
camera dslr dslr-camera gphoto2 linux photography raspberrypi

CameraControllerApi

The CameraControlerApi is an attempt to control a DSLR via REST functionality. At the moment is it possible to change the camera settings (ISO, aperture, time), take pictures and stream the live view of the camera (only tested with a Nikon D90).

Web-Interface

http://device_ip:port/webif/

Demonstration

a demonstration for the CameraControlerApi

How to use

You will get all valid data for a command from the "list" action.

Settings

List the configuration with validate values

http://device_ip:port/settings?action=list

ISO

http://device_ip:port/settings?action=iso&value=200

Aperture

http://device_ip:port/settings?action=aperture&value=f/22

Shutter Speed

http://device_ip:port/settings?action=speed&value=1/1000

Whitebalance

http://device_ip:port/settings?action=whitebalance&value=Cloudy

Capture

take a picture

http://device_ip:port/capture?action=shot

autofocus

http://device_ip:port/capture?action=autofocus

File system

list of the available images on camera

http://device_ip:port/fs?action=list

get an image

http://device_ip:port/fs?action=get&value=filename.jpg&path=/path/to/file

Each method will response with a JSON file. If you want a XML response you have to put the command "&type=xml" on the end of the upper commands

Live View

live view will be generated as mjpeg-stream. you can easy implement this stream in html inside an image tag e.g:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Live View</title>
</head>

<body>
<img src="http://localhost:8888/liveview" />
</body>

</html>

Dependencies

apt-get install libboost-dev libboost-system-dev libmicrohttpd-dev libgphoto2-dev libexiv2-dev