にわとり遊び
PC関連とエンコードの覚書き
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

簡易L字除去関数 LEraser
2016/04/27
関数最後のLeterboxのstart,endの指定ミスを修正


前に投稿したものがあまり上手くないようだったのでちょっと改良。

function LEraser (clip clip,float start,float end,float frames,float "top",float "bottom",float "left",float "right",int "LBtop",int "LBbottom",int "LBleft",int "LBright")
{
start=int(start*2)
end=int(end*2)
frames=int(frames*2)
top=default(top,0)
bottom=default(bottom,0)
left=default(left,0)
right=default(right,0)
t=(top/2)/frames
b=(bottom/2)/frames
l=left/frames
r=right/frames
LBtop=default(LBtop,0)
LBbottom=default(LBbottom,0)
LBleft=default(LBleft,0)
LBright=default(LBright,0)

function Lstart(clip clip,int start,float t,float b,float l,float r) {
ScriptClip(clip,"
tc=(current_frame-"+string(start)+")*"+string(t)+"
bc=(current_frame-"+string(start)+")*"+string(b)+"
lc=(current_frame-"+string(start)+")*"+string(l)+"
rc=(current_frame-"+string(start)+")*"+string(r)+"
Spline36Resize(last.width,last.height,lc,tc,last.width-lc-rc,last.height-bc-tc)
")
return last
}
function Lcrop (clip clip,int frames,float t,float b,float l,float r) {
tc=t*frames
bc=b*frames
lc=l*frames
rc=r*frames
clip.Spline36Resize(clip.width,clip.height,lc,tc,clip.width-lc-rc,clip.height-bc-tc)
return last
}
function Lend(clip clip,int end,float t,float b,float l,float r) {
ScriptClip(clip,"
tc=("+string(end)+"-current_frame)*"+string(t)+"
bc=("+string(end)+"-current_frame)*"+string(b)+"
lc=("+string(end)+"-current_frame)*"+string(l)+"
rc=("+string(end)+"-current_frame)*"+string(r)+"
Spline36Resize(last.width,last.height,lc,tc,last.width-lc-rc,last.height-bc-tc)
")
return last
}
clip.SeparateFields
ApplyRange(start,start+frames,"Lstart",start,t,b,l,r)
ApplyRange(start+frames+1,end-frames,"Lcrop",frames,t,b,l,r)
ApplyRange(end-frames+1,end,"Lend",end,t,b,l,r)
Weave()
ApplyRange(start/2,end/2,"Letterbox",LBtop,LBbottom,LBleft,LBright)
return last
}


clip : 関数を適用するクリップ
start : L字が出始めるフレーム。片フィールドの場合は 100.5 のように0.5を足して指定する。
end : L字区間が終わるフレーム。
frames : L字の出始めから完成までのフレーム数。
top , bottom , left , right : L字テロップの上下左右を指定する。
LBtop , LBbottom , LBleft , LBright : Letterboxで上部を黒くする。


使用例
#NTV
LEraser(91.5,4136.5,30,left=200,bottom=1080-930)
LEraser(4361.5,22058,30,left=200,bottom=1080-930)
LEraser(22205,41298.5,30,left=200,bottom=1080-930)

#TX
LEraser(34.5,4253,27,left=215,bottom=1080-918)
LEraser(4580.5,23343,27,left=215,bottom=1080-918)
LEraser(23366.5,43152.5,27,left=215,bottom=1080-918)


スポンサーサイト

コメント

コメントの投稿














管理者にだけ表示を許可する


トラックバック
トラックバック URL
http://sasamisi.blog24.fc2.com/tb.php/325-5d0e42ba
この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。