This package demonstrates the technology in the research paper:
Please also refer to the project web page and additional results.
The demo consists of two programs:
VideoLoopCreate.exe: to convert a short input video (about 5 seconds) into a video loop.
VideoLoopView.exe: to view the resulting video loop and interactively adjust its dynamism.
For immediate use, just run the file
to see the already computed example.
The demo can be found
Note that the code requires 64-bit Windows 7 (or more recent) (not Windows RT).
Also, creating new video loops requires 8 GB of memory.
Our package should contain all the necessary redistributable
(If there are errors regarding missing
dll files and Microsoft Visual Studio is not
installed, it may be necessary to install
its runtime components.)
Reads the specified input video and creates the following files:
SampleVideo_loop.mp4: a 5-second video loop
SampleVideo_loop.vlp: a parameter file (internally a
*.pngimage) that encodes the looping parameters necessary to adjust the level of dynamism in
Supported input video formats include
Only up to 5 seconds of the input video is processed. If the video is 7 seconds or longer, then the section from second 2 to second 7 is used, otherwise the last 5 seconds of the video is used.
For high-resolution videos (video height 720 or greater), the
performs the looping optimization on a downsampled version of the video.
However, the output video is at the same resolution as the input video.
It is possible to drag-and-drop an input video on top of the
VideoLoopCreate.exe icon to run it.
It normally takes 2-4 minutes to process a video, depending on its resolution and the processor speed.
Shows the specified video loop without any extra features.
One nice property of our video viewer is that it does not stutter when reaching the end of the video and resuming at the beginning.
SampleVideo_loop.vlp to enable interactive
control over video dynamism.
The vertical slider on the right controls the level of dynamism globally. The bottom setting corresponds to a static video, and the top setting corresponds to a fully dynamic video.
The checkbox below the slider enables red/green coloring of the looping regions. A region is shown green when looping and red when static.
Clicking over the video allows spatial control over dynamism -- enabling or disabling the looping state of the region under the cursor.
Painting a stroke over the video by dragging the left button affects all encountered regions -- disabling them by default, or enabling them if the "shift" key is held down.
For convenience, one may drag-and-drop a
*.mp4) file on top of the
VideoLoopView.exe icon to view it
(or set up a file association from the
*.vlp extension to the
VideoLoopCreate.exe -loopsecs 4 -ext wmv M4Kseabeach1.wmv
This command, contained in the batch file
demonstrates additional command-line options using a 4K video input file
(which must be downloaded separately).
-loopsecs 4specifies that the output video loop should be 4 seconds long instead of the default 5 seconds.
-ext wmv, the video loop is output into a
*.wmvfile instead of the default
*.wmvcodec. The file extension is set to
*.wmvautomatically in this case.
Plays the video loop
resulting from the
VideoLoopCreate command above.
VideoLoopCreate.exe -reps 3 SamplePoolPalms.mp4
With the command-line parameter
-reps 3, the program creates one additional file:
SamplePoolPalms_3loops.mp4: 3 successive instances of the loop, to reduce restart stutter in a conventional video player.
The loop creation program assumes that input videos have no camera motion. This is best achieved by shooting videos with a camera on a tripod. If the video is hand-held, visible camera motion can lead to artifacts resulting in a poorer quality looped video. Thus, for hand-held videos we recommend running a software stabilizer or alignment process first. Here are some resources for stabilizing videos:
| ||this file|
| ||quickly invoke the video loop viewer on SampleSquareFlags_loop|
| ||create a video loop for the second sample video|
| ||create a 4K video loop|
| ||a sample input video|
| ||a sample output video loop|
| ||the looping parameter file associated with the loop|
| ||another sample input video|
| ||the loop creation program|
| ||the loop viewing program|
| ||a runtime library required by the |