Cheap Slow(ish) motion video

LineCutter

Active member
Short version:
Your PAL video camera records 25fps, but with a bit of processing you can extract a video running at 48% of the original speed, using the temporal data you have captured.

OK, so it's not thousands of fps & the are some artefacts in fast moving objects. On the other hand if you have a fancy video camera that will do faster frame speeds the same trick works.

I can't take credit for the techniques, they're on the internet if you want to go further into the options, these work for me.

Grab & install:
AVIsynth
The MVtools & LeakKernelBob dlls (AviSynth Filter Collection)
VirtualDub
(All are free)
Use a video camera to get some footage :)

Then use this script. Change line 1 to show the video filename, then drag & drop the script into VirtualDub. Set the filters & compression for your output as you like them. Then save out your masterpiece.

Script (things after a # are comments). Save it as SlowMo.avs:
========8<=========
DirectShowSource("D:\loose.avi",audio=false)
ConvertToYV12
LeakKernelBob(0) # (0=BFF, 1=TFF)
#complementparity
#BilinearResize(360, 288)
AssumeFPS(25)#(gives 50% speed)
smoothfps(100)
assumefps(24)
function smoothfps(clip source, float fps) {
fp=fps*100
backward_vec = source.MVAnalyse(isb = true, truemotion=true, pel=2, idx=1)
# we use explicit idx for more fast processing
forward_vec = source.MVAnalyse(isb = false, truemotion=true, pel=2, idx=1)
cropped = source.crop(4,4,-4,-4) # by half of block size 8
backward_vec2 = cropped.MVAnalyse(isb = true, truemotion=true, pel=2, idx=2)
forward_vec2 = cropped.MVAnalyse(isb = false, truemotion=true, pel=2, idx=2)
return source.MVFlowFps2(backward_vec,forward_vec,backward_vec2,forward_vec2,num=int(fp),den=100, idx=1,idx2=2)
}
Sharpen(0.50)
=======>8=========

It's not the most flattering video, but you can judge the results from it (2.5Mb)
 
Top