Time Lapse Video Processing Part 2 – From Video

2013-03-17
Gonzaga Bay to Bahía de los Angeles (after editing in Windows Movie Maker) Vimeo.

In the previous post, I described my setup as well as the process for creating time-lapse videos from still images.

In this post, I'll describe the process for doing the same by skipping frames in video files, resulting in a much smoother timelapse video – especially for driving scenes.

Assembling Time Lapses from Video

Using x264vfw (http://sourceforge.net/projects/x264vfw/), VirtualDub and Windows Movie Maker.

Video Source Files:
  • 29.97fps 720p H.264 MP4 video (VGA and HD)
  • 29.97fps 720p H.264 MOV video (HD)

Load In VirtualDub


I am using VirtualDub to "decimate" the video files and reassemble them at the original framerate, resulting in an accelerated or time-lapsed video.

To start, choose FILE->OPEN VIDEO FILE and select the source video. Don't forget to install the ffmeg input driver for VirtualDub if your source files are .MP4 (or mpeg in another container, such as .MOV).

Frame Rate


Both the Roam and the NEX-5 are configured to capture video at 29.97fps (standard NTSC framerate). To create a time-lapse, I accelerate the video by skipping frames ("decimating" in VirtualDub terminology) when I re-encode the files (back to 29.97fps).

To do this in VirtualDub, first decide how much you want to accelerate the video – 2x, 3x, 10x, etc. For highway driving, I typically use 10x. For driving on trails or street scenes, I use 6x.

To set the frame rate in VirtualDub, choose Video->Frame Rate. Set the Source Frame Rate Adjustment to the source video framerate (29.97fps in my case) multiplied by the acceleration factor (10x for this example). This changes the source frame rate to 299.7fps (10x29.97fps=299.7fps).

Second, select the Decimate By option and enter the same acceleration factor (10 for this example). This will select every 10th frame and skip the rest, reducing the ultimate framerate back to 29.97fps for playback.





Why does this work?

A 30-second source video will contain 899.1 frames (29.97fps * 30s=899.1 frames). If I want to accelerate the video by 10x, I take 1/10th of the frames (89.91), resulting in a 3s video that appears to play back at 10x the recorded speed (89.91 frames / 29.97fps = 3s).

To play back at 2x the speed, I take half the frames (449.55), resulting in a 15s video that appears to play back at 2x the recorded speed (449.55 frames / 29.97fps=15s).

Compression


From experimentation, I find that for 720 video, an average bit-rate of 7kbps with H.264 works well. I have not attempted to fine-tune the options further.

Video->Compression and choose x264 for Windows. I then set Rate Control to Single Pass ABR and set the bitrate to 7000.

I then save the videos (FILE->SAVE AS AVI) or batch them up to process overnight.

Final Editing


Once complete, I have the original files cut down to time-lapsed H.264-encoded AVIs. At this point, they are ready for editing with a non-linear editor, such as Windows Movie Maker (or better – Premiere or Final Cut Pro), to add transitions and soundtracks.

No comments:

Post a Comment