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

多局ブレンドでクリップ間に差異があるとき一方のクリップに上書きを行う - OverDiff (その3)
多局ブレンドを行う際、局独自の宣伝テロップや番組内提供など、出現フレームが毎回変わるものに対して使用します。

function OverDiff (clip clip1,clip clip2,string "filter",int "x",int "y",string "filter2",int "x2",int "y2",int "luma",bool "show",int "mode") {
x=default(x,0)
y=default(y,0)
x2=default(x2,0)
y2=default(y2,0)
luma=default(luma,133)
global luma=luma
mode=default(mode,1)
c1=(defined(filter)) ? eval("clip1."+filter) : clip1
c2=(defined(filter)) ? eval("clip2."+filter) : clip2
c2_2=(defined(filter2)) ? eval("clip2."+filter2) : c2
x2=(defined(filter2)) ? x2 : x
y2=(defined(filter2)) ? y2 : y
diff=Overlay(c1,c2,mode="difference")
clip3=(mode==0) ? Overlay(clip1,c2_2,x=x2,y=y2) : Overlay(clip1,c2,x=x,y=y)
clip3=(mode==1) ? Overlay(clip3,c2_2,x=x2,y=y2) : clip3
clip=ConditionalFilter(diff,clip1,clip3,"AverageLuma","<","luma",show=show)
return clip
}

clip1 - ベースとなるクリップ
clip2 - clip1に上書きするクリップ
filter - 双方のクリップを比較・判定しOverlayするためのcropを記述する。mode=0のときは判定のみ。
x,y - Overlayのx,y位置
filter2 - filterで上書き判定が出た際、Overlayするcropを記述する。判定には影響しない。
x2,y2 - filter2でのOverlayのx,y位置
luma - 比較クリップの差のしきい値
show - ConditionalFilterによるshowオプションを表示する
mode - 0:filterは判定のみに使用、filter2のみOverlay。1:filterとfilter2の両方をOverlayする。


使用例:

#BS11番組冒頭のテロップ
BS11=OverDiff(BS11,MX,"crop(846,940,42,20)",846,940,"crop(340,930,-340,70)",340,930,mode=0)

#BS11番組内提供と、消えるロゴの処理
BS11=OverDiff(BS11,MX,"crop(1100,580,-100,500)",1100,580,"crop(1670,40,150,80)",1670,40)
BS11=OverDiff(BS11,MX,"crop(1758,58,12,42)",1758,58,"crop(1670,40,150,80)",1670,40,mode=0)
スポンサーサイト

コメント

コメントの投稿














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


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

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