Monday, 12 March 2007

Time lapse photography. Part 1.

Time lapse photography is something I've wanted to try for a while.

But how exactly would I do it?

I've got an old digital camera lying about, a Fujifilm S602 zoom, that I could use. Of course I'd have to hook it up to the PC and get it to capture the images at regular intervals.

Again, how exactly would I do that?

A quick scour of Google revealed a couple of projects.

Finepix uses it's own kernel driver and it plugs into Video4Linux. I didn't get this to work initially.

I then found Mishoo's personal project to get his A310 capturing images.

This second one is much simpler and uses libusb to control the camera and it's a single binary.

Once I'd switched the camera into PC-Cam mode, it worked straight away. It had a few problems so I tidied it up a little and it now does something close to what I want.

Next steps... get it capturing decent images on a regular basis and then turning the photos into an AVI.

PS: It turns out that the power supply for my old Creative Zen MP3 player also works as DC-in for the S602 zoom.

1 comment:

  1. Came to browse thru your updates as I've completely exhausted the technology news services for this planet, to this very minute, and was seeking other tech indulgences ;-)I saw your article on Linux, USB and camera's from March 11 .. and here I am, same day, wrapping up my work on UVC (USB's Universal Video Class) support in libMidnightCode; to say, anything that uses Video4Linux (v2) is piss easy to code for - I had not done it before this project. Just fopen the device, initialise it for your frame-rate, buffers, etc, read frames / write them to disk, and then close everything out. I wanted to do this for Project ATS (which requires directional motion video), and something much more basic for Project Discontent (which only requires single static frames for stop-motion animation). But it would be really easy to apply to time-delay/time-lapse video capture.If you're getting back into your C, you could code something up so that it fires via PHP triggers as they leave your events system ...