特定の範囲にフィルタをかける
以下のような方法を使えば、特定の範囲のフレームだけにフィルタをかけることができます。
ApplyRangeフィルタ †
AviSynth内蔵のApplyRangeフィルタを使用する方法です。AviSynth 2.5.1以降のバージョンで利用できます。
詳しくは、ApplyRangeのページを参考にしてください。Animateフィルタのページも参照。
Trimフィルタを利用する †
Trimフィルタを利用して、特定の範囲のフレームにフィルタをかけることができます。以下のような手順で行います。
- Trimフィルタを使って、フィルタをかける範囲とかけない範囲に分割します
- フィルタをかけたい範囲にだけフィルタをかけます。
- 演算子+(またはSplice)で、分割したクリップを結合しなおします。
- 例1(300フレームあるクリップの100-199フレームにのみフィルタをかける)
c1 = Trim(0, 99) c2 = Trim(100, 199).ColorYUV(cont_u=1,cont_v=1) #この範囲にフィルタをかける c3 = Trim(200, 299) c1 + c2 + c3
- 例2(先頭から99フレームまでにのみフィルタをかける)
c1 = Trim(0, 99).ColorYUV(cont_u=1,cont_v=1) #この範囲にフィルタをかける c2 = Trim(100, 299) c1 + c2
- 例3(200フレームから最終フレームまでにのみフィルタをかける)
c1 = Trim(0, 199) c2 = Trim(200, 299).ColorYUV(cont_u=1,cont_v=1) #この範囲にフィルタをかける c1 + c2
FilterRange関数 †
ユーザー定義関数のFilterRangeを利用すれば、指定範囲にフィルタをかけることができるようになります。この関数は、上記のTrimフィルタを利用するで紹介した方法を、1つにまとめたものであると言うことができます。
詳しくは、作者のサイト、および、当サイトのFilterRangeのページを参照。
- 作者のサイト: nullinfo
- "FilterRange - 指定範囲にフィルターをかける関数"
- FilterRangeのページ
その他 †
JDL_ApplyRange関数 †
- "JDL_ApplyRange"(stickboy's AviSynth Stuff)
JDL_ApplyRangeは、jdl-range.avsiの中に含まれています。jdl-range.avsiには、他にも、クリップ内のある範囲で動作する関数が含まれています。
- 使用例
Import("jdl-range.avsi") #オートローディングしたときは不要 Import("jdl-util.avsi") #オートローディングしたときは不要 JDL_ApplyRange(123, 456, "ColorYUV(cont_u=1,cont_v=1)")
JDL_ApplyRangeでは、jdl-util.avsiに含まれる関数も使われています。そのため、jdl-range.avsiだけでなく、jdl-util.avsiも必要になります。*1
FilterRangeExプラグイン(ApplyRangeEx/FilterRangeEx) †
FilterRangeExプラグインには、ApplyRangeExとFilterRangeExという2つのフィルタが収録されています。これらのフィルタは、ApplyRangeとFilterRangeの機能を拡張したもので、複数の指定範囲にフィルタを適用することができます。また、「両者の違いは、フィルタの指定文字列に、パラメタ値と共に指定するか、別に指定するか」にあります。詳しくは、Kiraru2002's Roomの解説を参照。
ダウンロードは、「引数いろいろ(4) FilterRangeEx part(3) --- Eval,ScriptClip呼び出し、user_data」の真ん中あたりにあるアーカイブから。
FilterRangeEx関数 †
- "FilterRangeEx"(Kiraru2002's Room): FilterRangeの機能拡張版で、JavaScriptとwarpsharpプラグインを使って、複数の指定範囲にフィルタをかけることができます。
FilterRangePlus関数 †
- "FilterRangePlus"(niiyan): FilterRangeの機能拡張版で、再帰呼び出しを使って、複数の指定範囲にフィルタをかけることができます。
HowToApplyFilterToManySingleFrames †
ConditionalFilterとConditionalReaderを組み合わせて、たくさんのフレームや範囲にフィルタを適用する方法。HowToApplyFilterToManySingleFrames、およびにーやんのブログ :: HowToApplyFilterToManySingleFramesを参照。
このページを編集
最近の変更箇所
バックアップ一覧
リロード
新規ページの作成
ページ一覧
最近更新されたページ
PukiWikiのヘルプ