AviSynthのぺーじ/AVIソースの読み込み

これは、かつて「にーやんのAviSynthのぺーじ」として公開されていたものを転載したものです。内容は古く、間違いも含まれている可能性があります。より正確で新しい情報を知りたい場合は、AviSynth 付属のヘルプや AviSynth 公式サイトを参考にすることをおすすめします。AviSynth WikiAviSynth入門なども活用してください。

AVIソースの読み込み(基本)

 つぎにAVIファイルをソースとして使用する方法について紹介します。

 Template.avsの4-5行目を見てください。

#//--- AVI ---//
#AVISource("D:\Source\映像ファイルの名前.avi")

 AVISourceフィルタでAVIファイルを読み込みます。AVISourceフィルタはAviSynth内蔵のフィルタですので、プラグインは使用しません。

 5行目の映像ファイルの名前を読み込みたいAVIファイルの名前に書き換えてください。また、必要に応じてパスも書き換えてください。

avisource1.png

 この例の場合、「Dドライブ」の「Sourceフォルダ」内にある「source.avi」という名前のファイルを読み込みます。

 スクリプトを変更し終えたら、名前を付けて保存します。

 前回同様、Template.avsとは別の名前で保存します。ここでは仮にavisource.avsという名前で保存することにします。

 確認のために、VirtualDubModでavisource.avsを開いてみましょう。

vdubmod_open.png

 VirtualDubModを起動して、[File] -> [Open video file...]からavisource.avsを開きます。

 もしうまくAVIファイルが開けなかったときは、パスやファイル名が間違っていないか確認してください。

 AVISourceフィルタの基本的な使用方法はこれだけです。

オプション1:音声入力の有無

 AVISourceフィルタには2つのオプションがあります。その一つはaudioパラメータです。

 audioパラメータはAVIファイル内の音声を読み込むかどうかを選択できます。読み込む場合はtrue、読み込まない場合はfalseです。audioパラメータを省略した場合、AVIファイル内に音声があれば読み込まれます。

 音声部があるAVIファイル内の音声を読み込ませたくない場合は、次のように記述します。

avi_audio_false.png

 「audio = false」で、AVIファイル内の音声部を読み込みません。「audio =」は省略することができます。

vdubmod_fileinfo.png

 音声が読み込まれているかどうかは、VirtualDubModの[File] -> [File Information...]から確認することができます。

avi_audio_false_vdubinfo.png

 このときVirtualDubModの[File Information...]を見ても、Audio Stream欄に音声部の情報は表示されません。

avi_audio_true_vdubinfo.png

 ちなみに同じAVIファイルを「audio = true」とするか、audioパラメータを省略して読み込んだ場合、左の図のように音声部の情報が表示されます。

オプション2:色空間の選択

 2つ目のオプションはpixel_typeパラメータです。

 pixel_typeパラメータはAviSynth2.0.6以降から採用されたもので、これによりデコード用の色空間を選択することができます。

 pixel_typeパラメータで指定できる色空間は"YV12","YUY2","RGB32","RGB24"の4つです。

 pixel_typeパラメータを省略した場合、デコーダによってサポートされているフォーマットの中から、YV12 > YUY2 > RGB32 > RGB24の優先順位に従ってデコードされる色空間が選択されます。たとえば、HuffyuvはYUY2、DivX5はYV12になります。

 ただし、非圧縮RGB(UnCompressed RGB)AVIの場合、このパラメータは無効になります。

 ためしにpixel_typeパラメータを指定して、Huffyuvコーデック(YUY2)でエンコードしたAVIファイルを読み込んでみます。

avi_colorspace_yuy2.png

 「pixel_type = "YUY2"」で、YUY2でデコードします。この場合、「pixel_type =」は省略することができません(理由は後で述べます)。

 YUY2でデコードされているかどうかを確認するためにinfoフィルタを追加しています。infoフィルタで直前のビデオクリップの情報を表示することができます(AviSynth2.5以降のみ)。

 変更保存後、avisource.avsをVirtualDubModで開きます。

avi_colorspace_hfyu_yuy2.png

 pixel_typeパラメータで指定したとおり、ColorSpace(色空間)がYUY2になっています。

 ちなみにここで使用しているAVIファイル(Huffyuv)はYUY2でエンコードされているので、pixel_typeパラメータを省略してもYUY2でデコードされます。

avi_colorspace_rgb.png

 pixel_typeパラメータを"RGB24"に変更しました。

avi_colorspace_hfyu_rgb.png

 すると、先ほどと同じYUY2でエンコードされたAVIファイルなのに、ColorSpaceはRGB24になっています。

 同様にpixel_typeパラメータで"RGB32"と指定すれば、RGB32でデコードされます。

avi_colorspace_yv12.png

 pixel_typeパラメータを"YV12"に変更しました。

avi_colorspace_hfyu_yv12.png

 しかし、HuffyuvコーデックがYV12デコードに対応していないため、エラーが出てしまいます。

 このようにデコーダが対応していない色空間を指定することはできませんので、注意してください。

[AviSynth1.0/2.0の場合]

 AviSynth1.0/2.0におけるデフォルトの色空間はYUY2で、pixel_typeパラメータにおける優先順位はYUY2 > RGB32 > RGB24の順です。YV12には対応していません。

すべてのオプションを指定する場合

avi_audio_color1.png

 このようにaudioパラメータとpixel_typeパラメータを同時に指定することもできます。

avi_audio_color2.png

 また、このように「audio =」と「pixel_type =」を省略することも可能です。ただし、この場合、パラメータの順番を入れ替えてはいけません。

 AviSynthのフィルタにはそれぞれ書式(記述の仕方)があり、カッコの中に何を書いてもいいわけではなく、どの順番で書くかも決められています。

 そのため、パラメータの順番を逆(pixel_typeパラメータ, audioパラメータの順番)にしたり、途中のパラメータを抜かしてしまうとエラーが出ます(「pixel_type =」のようにパラメータの名前を指定した場合は除く)。

 AVISourceフィルタの場合は「AVISource( クリップ名[, audioパラメータ, pixel_typeパラメータ] )」という書式があります。

avi_audio_color3.png

 そのため上の図のように書いてしまうと、audioパラメータ(trueかfalse)の位置にpixel_typeパラメータ("YUY2")が来てしまうことになり、とてもマズイわけです。

avi_audio_color3_error.png

 このスクリプトを実行すると、案の定、エラーが出てしまいます。

avi_audio_color4.png

 ただし、こちらの例の場合、audioパラメータの位置は間違っておらず、省略されているpixel_typeパラメータにはデフォルトの値が適用されるため、エラーは出ません。

最終更新日 2003年12月7日

最終更新日時: 2014-03-12 (水) 23:36:20 (3690d)