エラーのタイプ
- エラーの種類とその原因
- Script error: there is no function named "xxx"
- Script error: Invalid arguments to function "xxx"
- Script error: expected a , or )
- The script's return value was not a video clip
- I don't know what "xxx" means
- Splice: Frame sizes don't match
- Splice: Video formats don't match
- Plugin xxx.dll is not an AviSynth *** plugin.
- LoadPlugin: unable to load "xxx.dll"
- xxx: Supports *** color format(s) only
エラーの種類とその原因 †
代表的なエラーを、いくつか紹介します。エラーが発生したときの参考にしてください。
Script error: there is no function named "xxx" †
- 意味
スクリプトエラー: "xxx"という名前の関数は存在しません。*1
- スクリプト例
MesageClip("Hello World!") return last
- 原因
関数(フィルタ)の名前が間違っている、または、存在しない関数を呼び出そうとしたものと考えられます。上の例では、本来、MessageClipと書くべきところを、MesageClipと、sを1つ抜けているのが、その原因です。
Script error: Invalid arguments to function "xxx" †
- 意味
スクリプトエラー: 関数"xxx"に不正な引数。
- スクリプト例
MessageClip("Hello World!", true) return last
- 原因
引数に誤りがあるものと考えられます(変数型が間違っているなど)。この場合、MessageClipの2つ目の引数はint型であるにも関わらず、bool型のtrueを記述していることが原因です。MessageClipの書式については、MessageClipのページを参照。
Script error: expected a , or ) †
- 意味
スクリプトエラー: ,(コンマ)、または、)(右丸括弧)を予期した。
- スクリプト例
MessageClip("Hello World!" return last
- 原因
引数の区切りに使用するコンマ、または関数の最後を示す右丸括弧が抜けています。上の例では、1行目の最後に右丸括弧がないことが、エラーの原因です。
The script's return value was not a video clip †
- 意味
スクリプトの戻り値が、ビデオクリップではありませんでした。
- スクリプト例
clip = MessageClip("Hello World!") return last
- 原因
AviSynthでは、スクリプトの戻り値は、つねにクリップでなければなりません。上の例の場合、1行目のMessageClipで生成されたクリップは変数clipに割り当てられているため、2行目で戻り値として指定されている変数last*2が存在しないことが原因です。
I don't know what "xxx" means †
- 意味
私は、"xxx"が何を意味するのか知りません。
- スクリプト例
MessageClip("Hello World!") return clip
- 原因
あらかじめ宣言されていない変数を使用した場合などに発生するエラーです。上の例では、変数clipを宣言している行がないために、2行目のリターン文でエラーが発生します。ちなみに、1行目で生成されたクリップには、特別な変数lastが割り当てられています。
Splice: Frame sizes don't match †
- 意味
Splice: フレームのサイズがマッチしません。
- スクリプト例
c1 = ColorBars(320, 240) c2 = ColorBars(480, 480) return c1 + c2
- 原因
AviSynthでは、Spliceフィルタ(UnalignedSpliceかAlignedSplice)や演算子の+(+か++)を使って複数のクリップを連結することができますが、大きさの異なるクリップをつなぎ合わせることはできません。上の例では、c1とc2の大きさが異なっているために、エラーが発生します。
Splice: Video formats don't match †
- 意味
Splice: ビデオのフォーマットがマッチしません。
- スクリプト例
c1 = ColorBars(320, 240) c2 = ConvertToYUY2(c1) return c1 + c2
- 原因
AviSynthでは、色空間のフォーマットが異なるクリップを連結することはできません。上の例では、c1の色空間がRGB32であるのに対し(ColorBarsフィルタの仕様)、c2はConvertフィルタでYUY2に変換されています。このため、2つのクリップを連結しようとすると(3行目のリターン文)、エラーが発生します。
Plugin xxx.dll is not an AviSynth *** plugin. †
- 意味
xxx.dll(xxxプラグイン)は、AviSynth ***のプラグインではありません。*3
- スクリプト例(AviSynth 2.5)
LoadPlugin("DustV5.dll") ColorBars(320, 240) return last
- 原因
AviSynth 1.0/2.0とAviSynth 2.5とでは、プラグインの互換性がありません。このため、AviSynth 2.5環境で、AviSynth 1.0/2.0用のプラグインを読み込もうとすると、上記のエラーが発生します*4。LoadPluginExプラグインを利用すれば、この問題を回避することができます。詳しくは、LoadPluginExのページを参考にしてください。
- LoadPluginExプラグインの使用例
LoadPlugin("LoadPluginEx.dll") LoadPlugin("DustV5.dll") ColorBars(320, 240) return last
LoadPlugin: unable to load "xxx.dll" †
- 意味
LoadPlugin: xxx.dll(xxxプラグイン)を読み込むことができません。
- スクリプト例
LoadPlugin("warpsharp.dll") ColorBars(320, 240) return last
- 原因
何らかの理由によって、プラグインを読み込めなかった時に発生します。この場合、プラグインのパスを指定しておらず、なおかつ、AVSファイルと同じフォルダに当該プラグインが存在しなかったことが原因と考えられます。*5
- スクリプトの修正例
LoadPlugin("C:\AviSynth\Plugins\warpsharp.dll") ColorBars(320, 240) return last
xxx: Supports *** color format(s) only †
- 意味
xxx: ***カラーフォーマットのみをサポートしています。*6
- スクリプト例
LoadPlugin("TomsMoComp.dll") ColorBars(640, 480) TomsMoComp(1, 5, 0) return last
- 原因
フィルタによって、サポートしているカラーフォーマットは異なります。上の例では、ColorBarsフィルタによって生成されたRGB32のクリップに対し、YUY2とYV12にのみ対応しているTomsMoCompフィルタをかけようとしたことが原因です。フィルタがクリップのカラーフォーマットをサポートしていない場合、前もって、Convertフィルタを使って変換する必要があります。
内蔵フィルタがサポートしているカラーフォーマットについては、FiltersByCategoryを参考にしてください。また、外部プラグインに含まれるフィルタについては、プラグインに同梱されている説明書等を見てください。
フィルタによって、メッセージの文言が異なる場合もあります。上は、KenKunNRフィルタ(warpsharpプラグイン)の例。
- スクリプトの修正例
LoadPlugin("TomsMoComp.dll") ColorBars(640, 480) TomsMoComp(1, 5, 0) return last
*1 xxxは、関数名。
*2 lastは、変数の指定がない場合に、最後に処理したクリップに対して割り当てられる特別な変数。
*3 ***は、AviSynthのバージョン。
*4 AviSynth 1.0/2.0で、AviSynth2.5用のプラグインを読み込んだ場合も同じ。
*5 読み込ませたいプラグインがAVSファイルと同じフォルダにある場合は、パス指定しなくてもかまいません。
*6 xxxは関数名、***は色空間。
最終更新日時: 2004-11-11 (木) 02:13:48 (7334d)