Video i langsom gengivelse

Submitted by nowak on Wed, 05/10/2017 - 04:11
Forums

Video i langsom gengivelse med genererede mellembilleder, kan give nogle fede effekter.

Jeg bruger AviSynth og VirtualDub til at lave mine video effekter i windoze.

Se resultatet herunder.


Selve koden til slowmotion er vist herunder, slowmotion.avs: 

 

Code: [Select]

LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\mvtools.dll")

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)
}

AviSource("Dog-destroyed-full2.avi", pixel_type="YUY2")

smoothfps(200)
assumefps(30.00030)


Og reverse.avs:

Code: [Select]

Reverse(AVISource("slowmotion2.avi"))
Videoen er optaget med et Canon Ixus kamera. Det betyder, at det er komprimeret med mjpg codec, som er rimelig urart for AviSynth, af en eller anden sær grund. Jeg bliver derfor nødt til at klippe et videostykke ud med virtualdub og gemme det i rå format, hvorefter jeg kan lege lidt med det i AviSynth. Til sidst samler jeg det hele med concat.avs:
 

Code: [Select]

A = AviSource("Dog-destroyed-full2.avi")
B = AviSource("reverse2.avi", audio=false) # No audio stream
C = AviSource("slowmotion2.avi", audio=false) # No audio stream
A ++ AudioDub(B, BlankClip(A)) ++ AudioDub(C, BlankClip(A))


Derudover findes en sej function i AviSynth, der hedder merge. Med merge kan man lave fede overlay (overlægningseffekter). Se videoen herunder.



merge.avs:
 

Code: [Select]

AviSource("Dog-destroyed-full2.avi")
vid2 = AviSource("slowmotion2.avi")
Merge(vid2)

Tags