Posts from: May '12
Timelapse with a dSLR
You all have seen timelapse clips. Shooting your own timelapse with a dSLR can be an easy or а complicated task, depending on your goal, and the attention to detail. Here's something like a checklist of the process:
- Choose what you'd be filming (of course, there are endless possibilities here). If shooting outdoors, be sure to use a sturdy and heavy tripod, as the wind tends to make the frame twich in an unpleasant way otherwise.
- Framing is doubly important here, so be sure to get it right. It's very frustrating to shoot 500 frames having all the same annoying flaw.
- Turn off anything labeled 'auto' on the camera. Manual WB, manual focus, auto image enhancements disabled if you have them, and, if possible, use manual exposure settings. The last one depends on what you're shooting - e.g., in artificial lighting, or when the scene brightness doesn't change a lot, manual is all fine. But, when the lighting shifts dynamically (e.g., sunrise/sunset), you'd be forced to use some of the semi-auto modes. The downside of that is the necessity to postprocess the photos afterwards, as you'd almost surely need to adjust the frames a bit. The problem comes from the fact, that as the scene brightness changes, the camera changes the exposure settings (f-stop, ISO, and shutter time). These are all accessible in ⅓ stop increments, so there's a ⅓ stop inherent quantization present. When the brightness comes out halfway between two such stops, the decision of which of them to choose is more or less random. For example, with fixed aperture and ISO, when the brightness is between the adequate for 1/100s and 1/125s, consecutive frames of the timelapse sequence can be randomly assigned one of the two speeds. This results in brightness flickering in the resulting clip, a very noticeable artefact. To cope with this problem, I've added a Timelapse tool (demo), which does the suitable post-processing.
- You have to choose the frame interval. A quick rule of the thumb here would be to choose it in a way that would achieve 400 to 1000 timelapse frames for the expected duration of the shooting. Less than that, and the clip is probably too short (or needs low FPS), and if higher, the clip may be too long and boring. For example, an interval of 1 minute could be suitable for a whole-day timelapse.
- The other parameter, which is more difficult to control, is the exposure time, or, more precisely, what percentage of the frame duration would be exposed in the shot. Movie cameras operate by shooting, e.g., 24 frames per second, and each frame could be exposed for 1/50 s, so around 50% of the frame time is exposed. This results in a nice motion blur, as the movement is smoothly "joined" in the consecutive frames. In a daylight timelapse, the sutiation is a bit different: 1/400s (typical) at 15 s frame interval... that's 1/6000 (about 0.017%) of the frame duration, which is exposed. This gives the clip the notorious clay animation look.
To solve this issue, one should target for intentionally long exposures, so the exposure takes a significant proportion of the time interval, usually by employing a shutter priority mode on the camera. This is easy to do at night or twilight, but in full daylight, such exposures would be usually inaccessible. Here the natural density filters come handy, and in fact, you'd need quite a heavy ND filter (ND256 or greater). These tend to be expensive, so another solution is to stack two polarizing filters: a linear polarizer in the front, and a circular polarized after it. The phase between those two controls the remaining light, so it's kind of an adjustable ND filter. I'm still waiting for my filters to arrive, and I'll share my experiences when I get them. - The actual interval photography is enabled differently, depending on the camera model. A lot of simple and cheap cameras do have this little function built in, but dSLRs usually don't (oh, a pitiful win of marketing over engineering ò_ó). There are a few solutions here. You can install an hacked firmware addon (e.g., CHDK, Magic Lantern). You can also use your vendor's software and command the camera from a laptop, if possible. The third way is to use the shutter relase cable input, with an hardware interval trigger. This is what I do, and I've even designed two such triggers: the photodude, and it's smaller brother, the minidude.
- A good bonus would be to add slight movement during the timelapse - a few milimetres per frame, for example. This would invoke the feeling of a ordinary, realisting movement "in the real world" in the resulting clip, but the time would appear to run unnaturally fast, to an astonishing effect. To do this, in terms of hardware, the camera is usually placed on a tripod head, which, in term, is moving along some rails, usually employing stepper motors for the precise tiny steps between the frames. I'm too thinking of building such a system, but as a prototype, I designed something much simpler. Stay tuned for future developments here :)
- After the photography, it's time to stich the frames into a movie. As a linux-user, I find the command-line mencoder way to be the easiest:
mencoder "mf://@/tmp/listfile" -mf fps=25 -o output.avi -ovc lavc -lavcopts vcodec=ffv1
This would read a file list (e.g., JPEG files) from /tmp/listfile and stich them into an uncompressed .avi. You can then compress it with your favourite program, e.g. HandBrake, and you're all done.
That's it - happy shooting!
Posted in category Photography -- 27 May 2012, 04:35, 1 comment
Marketing wisdom
Recently I got some antiviral software as a gift - Panda Internet Security - in a neat box:
The box is just a normal one... but something pushed me to take a closer look at the print, and I noticed, that the year "2012" is revealingly underlined. And looks odd.
Waaaait a minute... Isn't it... oh
Surprise!
I haven't opened the box to check whether its really 2011's software rebranded as 2012, or its really 2012 inside, but they didn't have the new boxes for it. Anyway, the Panda programmers have written a decent online update facility (I guess), so it's not terribly important which version exactly you're installing - you end up with the most recent one anyway. But nooo, the marketing genius probably figured out the users won't buy a product that old - everybody knows that dozens of viruses appear each day - so it won't protect at all.
Oh. My God.
Posted in category Stuff -- 19 May 2012, 12:33, 0 comments
AGG 0.3.0
After 1½ years of laziness, I'm finally able to release a new version of the AGG - 0.3.0 :)
What's new?
- Unicode support. You can use any language you want (for file names, gallery titles, title pictures, or whatnot);
- Because of that: the interface language can be changed to other than English. However, no translations are currently available - I only added a test Bulgarian translation, in order to check if everything works out (AGG in BG). If anyone wants to contribute a translation (about 400 lines tops), please don't hesitate to contact me for details. Volunteers will be immortalized in the translations page :)
- Batch transfer Exif tool
- Auto-save option
- Gamma-aware resizing. You can select this option in order to have absolutely precise resizing, performed in linear RGB, instead of the gamma-compressed sRGB (the differences are outlined here).
- Better Exif statistics page (compare: 0.2.5 vs. 0.3.0).
- Improved HTMLs (size issues) and related bugfixes.
- There was a bug in the resizer, whereby images having large white areas (overexposed skies, for example) would have artifacts in the 100% white areas of the results. The artifacts are of the form of an irregular grid of (254, 254, 254) pixels (not very easy to detect, I'm only seeing this issue on one out of ten monitors - which is also why I caught it just now).
- Using Exiv2 instead of libexif for reading Exif metadata (it decodes somewhat more tags, especially vendor-specific ones).
- And a whole lot of other small improvements. The new version should display "Version 0.3.0 β Official" in Help->About.
The controversy with the russian guy, who cloned AGG (as I wrote earlier) resolved very amicably: he agreed with my cease-and-desist letter, and introduced notes all over the place, which mark his software as an AGG derivative. Also, he offers the source code upon request (and he sent it to me, when I requested).
This was a triumph! Another victory for the open-source movement!
Posted in category Open source -- 17 May 2012, 20:06, 0 comments