FilterRange

説明

  • 指定範囲にフィルタをかける関数。
  • 以下のコードは、にーやんによる改造版です。
  • minamina 氏によるオリジナル版は以下から入手可能:

作者

  • minamina(オリジナル)
  • にーやん(改造版)

コード

# FilterRange 改造版
function FilterRange(clip clip, int "start", int "end", string "filter") {
    # 最終フレーム番号の取得
    final_frame = clip.FrameCount() - 1
    # デフォルト値の設定
    start = default(start, 0) # 指定なしなら先頭フレーム
    end = default(end, final_frame) # 指定なしなら最終フレーム
    filter = default(filter, "") # あとで例外処理に使う
    # 例外処理
    Assert(end <= final_frame, "'end' should be less than or equal to " + String(final_frame) + ".")
    Assert(filter != "", "'filter' should be specified.")
    # start から end までを選択してフィルタを適用し c に代入
    c = Eval("clip.trim(start, end)." + filter)
    # start が 0 ならそのまま c のみ、1 ならフレーム 0 と c を結合、それ以外は start より前の範囲と c を結合
    c = (start == 0) ? c
    \ : (start == 1) ? clip.trim(0, -1) + c
    \ : clip.trim(0, start - 1) + c
    # end が 0 か最終フレームなら c のみ、さもなければ c と end より後ろの範囲を結合
    c = ((end == 0) || (end == final_frame)) ? c
    \ : c + clip.trim(end + 1, 0)
    # c を返す
    return c
}

シンタックス

FilterRange(clip clip, int "start", int "end", string "filter")
  • 引数
    • clip: ビデオクリップ
    • start: 開始フレーム
    • end: 終了フレーム
    • filter: 適用するフィルタ

使用例

  • フレーム 100 から 199 までに適用
    FilterRange(100, 199, "ColorYUV(cont_u=1,cont_v=1)")
  • フィルタの引数に二重引用符が含まれる場合
    FilterRange(100, 199, """Convolution3D(preset="movieHQ")""") # 外側の二重引用符を 3 つ重ねる
    

関連ページ

その他

  • 上記の使用例にもあるように、適用したいフィルタの引数に二重引用符が含まれる場合は、外側(つまり FilterRange の filter パラメータの方)の二重引用符を 3 つ重ねます。nullinfoの「よくある質問」を参照。
Last-modified: 2008-03-26 (水) 02:25:28