特定の範囲にフィルタをかける のバックアップ差分(No.2)


  • 追加された行はこの色です。
  • 削除された行はこの色です。
特定の範囲のフレームにだけフィルタをかけたい場合、以下のような方法で行うことができます。

#contents

**Trimフィルタを利用する [#y19cdc39]
Trimフィルタを使ってフィルタをかける範囲とかけない範囲に分割し、フィルタをかけたい範囲にだけフィルタを適用し、後で結合し直す方法です。

-使用例(300フレームあるクリップの100-199フレームにのみフィルタをかける)
 c1 = Trim(0, 99)
 c2 = Trim(100, 199).Function(Args) #この範囲にフィルタをかける
 c3 = Trim(200, 299)
 c1 + c2 + c3
Functionはフィルタの名前、Argsはパラメータ。

**ApplyRangeフィルタ [#s2e58427]
AviSynth内蔵のApplyRangeフィルタを使用する方法です。AviSynth 2.5.1以降のバージョンで利用できます。

-ApplyRange
--http://www.avisynth.org/Animate

-例
 ApplyRange(clip, 100,199, "Function", Args)
Functionはフィルタの名前、Argsはパラメータ。
-使用例
 ApplyRange(100,199, "Function", Args)

**FilterRange関数 [#mb84d501]
-"FilterRange -指定範囲にフィルターをかける関数"(nullinfo)
--http://nullinfo.s21.xrea.com/#script

-例
-使用例
 FilterRange(100, 199, "Function(Args)")
 
 function FilterRange(clip "clip", int "start", int "end", string "filter")
 {
     c1 = start < 2 ? clip.trim(0, -1) : clip.trim(0, start - 1)
     c2 = Eval("clip.trim(start, end)." + filter)
     c3 = clip.trim(end + 1, 0)
     c = start == 0 ? c2 : c1 + c2
     c = end == 0 ? c : c + c3
     return c
 }

**Trimフィルタを利用する [#y19cdc39]
-例
 c1 = Trim(0, 99)
 c2 = Trim(100, 199).Function(Args)
 c3 = Trim(200, 299)
 c1 + c2 + c3
**FilterRangeExプラグイン [#vc4fe447]
-"FilterRangeEx"(Kiraru2002's Room)
--http://members.at.infoseek.co.jp/kiraru2002/

**stickboy氏の関数(JDL_ApplyRangeなど) [#g8fe2f62]
-"JDL_ApplyRangeなど(jdl-range.avsi)"(stickboy's AviSynth Stuff)
--http://www.avisynth.org/stickboy/