スポンサーサイト

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

AutoFrameSelect - 高画質フレームの自動選択

 11, 2014 23:55

2 つのクリップをフレーム単位で画質チェックし、フレーム番号をリストアップします。
出力された関数を、そのまま AutoFrameSelect 関数から置き換えて貼り付ければ完了です。

■ STEP1 フレームをスキャンする


比較したい 2 つのクリップと、ログ出力先を指定します。
この状態でエンコードを空回ししてください。(全フレームをプレビューシークでも可能)

v1=AviSource("C:\encode\aaa_ep01_op.avi")
v2=AviSource("C:\encode\aaa_ep02_op.avi")
AutoFrameSelect(v1, v2, "C:\encode\aaa.log")
return last


■ STEP2 出力された関数を貼り付ける


C:\encode\aaa.log を開くと、既に出来上がった関数が書き込まれていますので
そのまま貼り付けます。

v1=AviSource("C:\encode\aaa_ep01_op.avi")
v2=AviSource("C:\encode\aaa_ep02_op.avi")
#~ AutoFrameSelect(v1, v2, "C:\encode\aaa.log")
TrimBlend(v1,v2,"""
2,
4,
6,
7,
8,
""")

return last


作業は以上です。
2 つのクリップの、画質が良いフレームを混ぜ合わせたファイルが出来上がります。
TrimBlend 関数を別途用意してください。


function AutoFrameSelect(clip v1, clip v2, string path) {
global sv1=v1.ConvertToYUY2().AntiComb(checkmode=true, pass1=16).ConvertToYV12()
global sv2=v2.ConvertToYUY2().AntiComb(checkmode=true, pass1=16).ConvertToYV12()
global path=path
WriteFileStart(v1, path, """ "TrimBlend(v1,v2," """, "chr(34)", "chr(34)", "chr(34)")
ScriptClip(v1, """ \
v1_v = AverageChromaV(sv1) \
v2_v = AverageChromaV(sv2) \
chr34 = chr(34) \
chr41 = chr(41) \
chr44 = chr(44) \
v1_v > v2_v ? WriteFile(path, "current_frame", "chr44").subtitle("v2") : last.subtitle("v1") \
current_frame==FrameCount(v1)-1 ? WriteFile(path, "chr34", "chr34", "chr34", "chr41") : last
""")
}








twitter
↑参考になったという方は、是非記事のツイートをお願いします



スポンサーサイト

COMMENT - 0



WHAT'S NEW?

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