View Full Version : Gradual zoom
JohannesL
27th March 2009, 15:41
I have a 1280x720 6-way splitscreen video, and I want to gradually zoom onto the two bottom right frames. No aspect ratio skewing must occour, and the frame size must remain 1280x720.
http://sm64.org/div/6Way.jpg
When the gradual zoom finishes, the video should look like this:
http://sm64.org/div/2Way.jpg
Thanks in advance.
Guest
27th March 2009, 15:48
You can use my Zoom filter for VirtualDub for an easy solution. Harder would be to write an Avisynth script using Animate(), etc.
JohannesL
27th March 2009, 16:06
I need something that can make the video after the gradual zoom look like my second picture. I'm guessing it would require a combination of Animate(), Crop() and AddBorders(), but I'm too dumb to figure out how the script would be. :(
Guest
27th March 2009, 17:25
It's more than just a zoom with pan, because at some point the top row must become a black bar. Maybe you want that to fade to black as the zoom&pan progresses?
It's going to be difficult.
2Bdecided
27th March 2009, 18:15
It's worse than that - you're showing your final image with full resolution crisp video. If you start from the top image, and zoom and crop, it's going to be nothing like that sharp.
This implies, you're starting with the 6 separate videos, and dynamically combining them in a smoothly changing way.
Er, Sony Vegas?! Or something like that.
Cheers,
David.
JohannesL
27th March 2009, 20:25
It's worse than that - you're showing your final image with full resolution crisp video. If you start from the top image, and zoom and crop, it's going to be nothing like that sharp.
I know, but it's good enough for YouTube.
neuron2: I was thinking about something like:
ApplyRange(100,100,"Crop",0,1,0,0,"AddBorders",0,1,0,0).ApplyRange(101,101,"Crop",0,2,0,0,"AddBorders",0,2,0,0).ApplyRange(102,102,"Crop",0,3,0,0,"AddBorders",0,3,0,0)
etc
Gavino
27th March 2009, 20:33
ApplyRange(100,100,"Crop",0,1,0,0,"AddBorders",0,1,0,0).ApplyRange(101,101,"Crop",0,2,0,0,"AddBorders",0,2,0,0).ApplyRange(102,102,"Crop",0,3,0,0,"AddBorders",0,3,0,0)
etc
You can only use one filter at a time in ApplyRange. But in any case, you should use Animate rather than a long string of ApplyRange's.
Define a suitable user function and apply Animate to that.
Gavino
28th March 2009, 00:38
Something like this ought to do the business:
function ZoomIt(clip c, float cropx, int border) {
AR = float(c.width)/c.height
c.LanczosResize(c.width, c.height, cropx, cropx/AR, 0, 0)
LetterBox(border, 0)
}
... # assumes source set up as 'last'
startFrame = ... # frame to start zooming
endFrame = ... # and frame to end it
Animate(startFrame, endFrame, "ZoomIt", 0.0, 0, width/3, height/4)
It gradually zooms into the bottom right of the frame, preserving aspect ratio, while progressively adding a black border at the top.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.