サンプルスクリプト/条件分岐
今日の献立 †
インストールされている AviSynth のバージョンによって、使用する関数を振り分けます。バージョン番号の取得には VersionNumber 関数を、条件による振り分け処理には三項演算子を使用します。
今回は例として Info フィルタを取り上げます。Info は AviSynth 2.5 から追加されたフィルタで、これよりも古いバージョンの AviSynth では利用することができません。そこで、AviSynth 2.5 以降なら Info を、AviSynth 2.5 よりも古いバージョンでは info_modoki 関数(AviSynth 2.0.x でも利用可能なユーザー定義関数)を使用するようなスクリプトを作ってみましょう。
材料 †
- VersionNumber(AviSynth 内蔵のスクリプト関数)
- 三項演算子(?:)
- 振り分けられるフィルタ(この 2 つは別のフィルタでもよい。)
- Info(AviSynth 内蔵フィルタ)
- info_modoki(ユーザー定義関数)
- AviSource(AviSynth 内蔵フィルタ)
- ソースとなるビデオクリップの読み込みに使用。他のビデオ入力フィルタでもよい。
作り方 †
- クリップの情報を取得したい行に、三項演算子を使った式を記述します。下の例では、「VersionNumber が 2.5 より小さいなら info_modoki、さもなければ Info」が使用されます:
AviSource("example.avi") # ソース (VersionNumber < 2.5) ? info_modoki() : Info() # VersionNumber が 2.5 より小さいなら info_modoki、さもなければ Info
- AVS ファイルの任意の行に info_modoki 関数を記述するか、info_modoki 関数を含む関数定義ファイルを Import するのを忘れないでください。
# 関数定義ファイルのインポート Import("info_modoki.avs")
または、# info_modoki 関数 function info_modoki(clip clip) { #(中略) }
ひとくちメモ: その他のバージョンを調べる関数 †
バージョン番号を確認できる関数には、Version と VersionNumber 以外にも、バージョン番号を文字列で返す VersionString という関数があります。
使用例:
BlankClip(width=360, height=20) # 360x20 の空のクリップを生成 ver_str = VersionString() # バージョン番号(文字列)を変数 ver_str に代入 Subtitle(ver_str) # Subtitle で ver_str を表示
関連レシピ †
最終更新日時: 2014-03-11 (火) 03:51:21 (3862d)