Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
|
|
#1 | Link |
|
Registered User
Join Date: Jan 2009
Posts: 88
|
script to move crop region window over timeline
Hi
I want to crop input file 1280x960 to output file 1280x720, but I wan to move cropping window region over timeline, i.e.: 00:00:00 - video cropped from below (crop region window offset x,y=0,0) 00:01:00 - video cropped from top (crop region window offset x,y=0,240) 00:02:00 - video cropped from center (crop region window offset x,y=0,120) How is it possible to script sequential moving of crop region window from 0,0 to 0,240 ? How is it possible to script instant crop region window change from 0,0 to 0,240 ? (additional note: input file is video, not still image) Last edited by zn; 20th December 2016 at 10:33. |
|
|
|
|
|
#2 | Link |
|
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 11,392
|
You dont use CROP (too jerky), use some kind of resize together with Animate(). (also see ApplyRange).
This done at half size Code:
IW=640 IH=490 OW=IW OH=360
Colorbars(Width=IW,Height=IH).Assumefps(24.0).KillAudio
Merge(FlipVertical).Merge(FlipHorizontal)
FperMin=FrameRate*60.0
Min0=Round(0*FperMin) # Frame number @ 00:00
Min1=Round(1*FperMin) # Frame number @ 01:00
Trim(0,-Min1) # 1 Minute
ShowFrameNumber
Filter="Spline36Resize"
Animate(Min0,Min1-1,Filter,
\ OW,OH, 0.0, Float(0.0) , Float(OW), Float(OH),
\ OW,OH, 0.0, Float(IH-OH), Float(OW), Float(OH)
\ )
Info
Above only does 1 minute. [NOTE above Float()'s to make explicit that floats are needed there] Search on Animate and ApplyRange for better examples. On wiki, http://avisynth.nl/index.php/Animate EDIT: Also see here:- http://forum.doom9.org/showthread.ph...hlight=animate
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? Last edited by StainlessS; 20th December 2016 at 04:03. |
|
|
|
|
|
#3 | Link |
|
Retried Guesser
Join Date: Jun 2012
Posts: 1,371
|
Here are some previous threads on this topic - have a look:
http://forum.doom9.org/showthread.php?t=135776 ("KenBurnsEffect") http://forum.doom9.org/showthread.php?t=168423 ("slow tilt") http://forum.doom9.org/showthread.php?t=172566 ("moving crop") |
|
|
|
|
|
#4 | Link |
|
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 11,392
|
Had another go (NOTE, w1,w2 and h1,h2 default to 0.0 ie means full [EDIT: INPUT] size).
Code:
Function AniSz(clip c,Int W,Int H,
\ Int "S", Int "E",
\ Float "x1", Float "y1",Float "w1",Float "h1",
\ Float "x2", Float "y2",Float "w2",Float "h2",
\ String "Resizer"
\ ) {
/*
AniSz(W,H) # Entire clip
AniSz(W,H, 0,0) # Entire clip
AniSz(W,H, 100,0) # Frame 100 to End of Clip
AniSz(W,H, 1,1) # Frame 1 Only
AniSz(W,H, 1,-3) # Frames 1 to 3 (ie 3 frames)
AniSz(W,H, 100,200) # Frames 100 to 200
Returns Range S,E ONLY
*/
c FC=FrameCount
S = Min(Max(Default(S,0),0),FC-1)
E = Default(E,0)
E = (E==0) ? FC-1 : E
E = Min(((E < 0) ? S-E-1 : E),FC-1)
Trim(S,E)
Resizer=Default(Resizer,"Spline36Resize")
x1=Float(Default(x1,0)) y1=Float(Default(y1,0)) w1=Float(Default(w1,0)) h1=Float(Default(h1,0))
x2=Float(Default(x2,0)) y2=Float(Default(y2,0)) w2=Float(Default(w2,0)) h2=Float(Default(h2,0))
w1=(w1 <= 0.0) ? w1+Width-x1 : w1 h1=(h1 <= 0.0) ? h1+Height-y1 : h1
w2=(w2 <= 0.0) ? w2+Width-x2 : w2 h2=(h2 <= 0.0) ? h2+Height-y2 : h2
Animate(0,FrameCount-1,Resizer, W,H, x1, y1, w1, h1, W,H, x2, y2, w2, h2)
}
###
### Added Stub function : Using Fixed Input frame area WxH same as output area WxH
###
Function AniSz2(clip c,Int W,Int H,Int "S",Int "E",Float "x1",Float "y1",Float "x2",Float "y2",String "Resizer")
{c.AniSz(W,H,S,E,x1,y1,W,H,x2,y2,W,H,Resizer)}
###
###
###
Colorbars(Width=1280,Height=960).Assumefps(24.0).KillAudio
W=1280 H=720
Merge(FlipVertical).Merge(FlipHorizontal)
FperMin=FrameRate*60.0
Min0=Round(0*FperMin) # Frame number @ 00:00
Min1=Round(1*FperMin) # Frame number @ 01:00
Min2=Round(2*FperMin) # Frame number @ 02:00
Trim(0,-Min2) # 2 Minute
Subtitle("Top Lump",Size=64,align=8).Subtitle("Bot Lump",Size=64,align=2).ShowFrameNumber.Info
###
###
###
AniSz(W,H,Min0,Min1-1,y1=0,h1=H,y2=240,h2=H) + AniSz(W,H,Min1,Min2-1,y1=240,h1=H,y2=120,h2=H)
###
### Alternative using Stub.
###
#AniSz2(W,H,Min0,Min1-1,y1=0,y2=240) + AniSz2(W,H,Min1,Min2-1,y1=240,y2=120)
###
### Zooming
###
#AniSz(W,H,Min0,Min1-1,x2=320,y2=245,w2=640,h2=490) # Zoom in
#AniSz(W,H,Min0,Min1-1,x1=320,y1=245,w1=640,h1=490) # Zoom Out
#AniSz(W,H,Min0,Min1-1,w2=64,h2=49) # Zoom in on Info
#AniSz(W,H,Min0,Min1-1,w1=64,h1=49) # Zoom out from Info
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? Last edited by StainlessS; 20th December 2016 at 21:11. |
|
|
|
|
|
#6 | Link |
|
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 11,392
|
Should not be a problem.
Added AniSz2() to post#4.
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? |
|
|
|
![]() |
| Thread Tools | Search this Thread |
| Display Modes | |
|
|