View Full Version : How to do a horizontal transition
Tim H
24th March 2005, 22:28
I want to do a very basic transition where my 2 sources move to the left (during a couple of frames) at one point in time.
The sources should not overlap.
Can someone help me with this one?
How it should look like:
http://users.pandora.be/geen/horizontal_move_transition.jpg
You need to select the last frame of 1st source using Trim.
Do the same to 1st frame of source2
Use Crop to remove the left half off the 1st one and the right half of the second one
Use StackHorizontal to join the 2 halves together.
Trim source1 to remove last frame and source2 to remove 1st frame.
Join the trimmed sources and your transition frame together.
Check syntax of Avisource, Trim, Crop and use + to join your clips.
regards
Simon
E-Male
25th March 2005, 01:04
i think there also are transition plig-ins
try searching
Karyudo
25th March 2005, 01:09
I'd also look at Animate(), which may let you automate the transition over some number of frames. This will likely save you having to work out the exact proportions of Clip1 and Clip2 required for each frame.
One caveat: I have used Animate() exactly once, to fix up some credits (i.e. I made a static -- but long -- PNG, and then animated a vertical pan across it).
vcmohan
25th March 2005, 02:55
TransAll plugin available at www.avisynth.org/warpenterprises has a function that does this. Try
Tim H
25th March 2005, 12:08
The "TransSprite" transition from TransAll.dll comes close to what I want.
I'm going to use it until I find a better solution (without the squeezing).
scharfis_brain
25th March 2005, 14:06
function right2left(clip a, clip b, int speed, bool "laced")
{ laced=default(laced,false)
spd=speed*a.framerate()
stackhorizontal(a,b)
x=laced ? last.bob(0,1) : last
x.converttorgb32()
changefps(spd)
Animate(0,a.width,"Crop", last,0,0,a.width,0, last,a.width,0,a.width,0)
changefps(x.framerate())
getparity(a) ? assumetff() : assumebff()
laced ? last.separatefields().selectevery(4,0,3).weave() : last
a.isyuy2() ? converttoyuy2() : last
a.isyv12() ? converttoyv12(interlaced=laced) : last
trim(0,a.width/speed)
}
try this
the high the speed-number, the shorter the transition.
laced=true enables interlaced processing
(be sure to set up the fieldorder proporly with assume?ff before!)
vcmohan
26th March 2005, 03:59
Originally posted by Tim H
The "TransSprite" transition from TransAll.dll comes close to what I want.
I also had a function TransPush which does exactly what You wanted. I thought that since that action can be got just by trim and stack, may not be needed so left it out of TransAll. I propose to post a new version of TransAll by end of this month and will include TransPush. If you want it urgent I can post the new version immediately
Tim H
27th March 2005, 09:09
I don't need it urgently, but I'm looking forward to it though.
Thanks all for helping, I really appreciate it.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.