of course i wanted to make one 🙂
here is how:
get a nice point of view. somewhere where you could be if the whole scene would be a model scale 1:87 (H0 for model train lovers). use a tripod if possible or hold very still.
shoot the scene. i did this with my eos 7d and the HD video function. alternatively you could use any other cam which is able to shoot 2 pictures per second. some canon cams support this if you use CHDK.
having the material to work with load everything to the mac or linux box of your trust.
to make the time lapse i used ffmpeg to extract 2 frames per second from the .MOV:
$ ffmpeg -i ~/input.MOV -r 2 -f image2 out/scene_%06d.png
this leaves you 2 frames per second in .png files in the out folder.
faking it. next thing you need to do is getting the fake tilt shift effect in the images to make everything look like it was tiny. additionally i added a little contrast to make it even look better. if you do not extract the images from a HD movie file as i did you probably should resize them to a native HD size before the next step (1920×1080). here is the little script:
#!/bin/bash # for better performance save the temp img that is created each time somewhere. # this saves processing power # convert out/scene_000001.png -sparse-color Barycentric '0,0 black \ # 0,%[fx:h-1] gray80' -solarize 50% -level 50%,0 \ # /tmp/my_blur_effect.png # then use this: # convert $filein -sigmoidal-contrast 9x30% \ # /tmp/my_blur_effect.png \ # -compose Blur -set option:compose:args 25 -composite \ # $fileout test -z $1 && echo "usage: $0 " && exit -1 filein=$1 fileout=$2 \ convert $filein -sigmoidal-contrast 9x30% \ \( +clone -sparse-color Barycentric '0,0 black 0,%[fx:h-1] gray80' \ -solarize 50% -level 50%,0 \) \ -compose Blur -set option:compose:args 25 -composite \ $fileout
this has to be run in a little for loop. look here to see how this is done.
be very patient with this. this can take a looooong time.
after running this you have all your frames converted to have a higher contrast and a fake tilt shift blur, as seen in the lower picture on the side. all that you need to do now is run ffmpeg again and combine those frames to a movie:
ffmpeg -i final/%06d.png -sameq ./mymovie.mp4
-sameq tells ffmpeg to leave the quality of the images like it is. this guarantees a nice high quality, if your source material is ok.
if you like to add music to your clip you can tell ffmpeg to take an audio file as well:
ffmpeg -i final/%06d.png -sameq -i mysoundtrack.mp3 ./mymovie.mp4
to cut and fade the soundtrack i used sox:
sox -t mp3 -r 192k original_soundtrack.mp3 mysoundtrack.mp3 fade p 0 40 5
and here is the resulting video: