## AVISource / OpenDMLSource / AVIFileSource / WAVSource

`AVISource` (string filename [, ...], bool "audio" = true, string "pixel_type" = YV12, [string fourCC])
`OpenDMLSource` (string filename [, ...], bool "audio" = true, string "pixel_type" = YV12, [string fourCC])
`AVIFileSource` (string filename [, ...], bool "audio" = true, string "pixel_type" = YV12, [string fourCC])
`WAVSource` (string filename [, ...])

`AVISource` は、引用符で囲まれた 1 つ以上のファイル名を実引数として取り、Video-for-Windows の「AVIFile」インターフェイスか AviSynth 組み込みの（VirtualDub から取り入れられた） OpenDML コードを使って、ファイルを読み込みます。このフィルタは、AVIFile ハンドラを持つどんなファイルをも読み込むことができます。これには、AVI ファイルだけでなく、WAV ファイル、AVS （AviSynth スクリプト）ファイルや VDR （VirtualDub フレームサーバー）ファイルも含まれます。実引数として複数のファイル名を指定した場合、それらのクリップは、`UnalignedSplice` を使って継ぎ合わされる（spliced）でしょう。audio パラメータはオプションで、デフォルトは true です。

`AVISource` フィルタは、ファイルのタイプを決定するためにそのファイルを調べ、AVIFile ハンドラか OpenDML ハンドラのいずれか適切な方へ渡します。どちらか一方のハンドラでトラブルが生じた場合には、`OpenDMLSource` フィルタと `AVIFileSource` フィルタを使用することもできます。これらのフィルタは、いずれか一方のハンドラを強制的に使用します。どちらのハンドラも通常の（2GB 未満の） AVI ファイルについては読み取ることができますが、2GB 以上の AVI ファイルを読み取れるのは OpenDML ハンドラだけで、逆に WAV、VDR や AVS のようなその他のファイルタイプを読み取ることができるのは AVIFile ハンドラだけです。

v2.04まで、`WAVSource` は `AVIFileSource` の別名でした。それ以降のバージョンでは、`WAVSource` はもうビデオストリームを開こうとはしません。これは、オーディオストリームを取り出したいにもかかわらず、ビデオストリームが破損していたり、圧縮方法があなたのシステムでサポートされていないような場合に役に立ちます。

v2.04 から、ACM （Audio Compression Manager）音声（例えば mp3-AVI）に対して内部サポートしています。また `AVISource` は、もう WAV ファイルを開くことはできません。WAV ファイルについては、`WAVSource` を使ってアクセスしなければなりません。

v2.06 から、pixel_type パラメータ（デフォルト YUY2）を使って、デコーダの出力フォーマットを選択することができます。有効な値は、"YUY2"、"RGB32" と "RGB24" です。省略された場合、AviSynth は、デコーダによってサポートされているフォーマットのうち、（YUY2、RGB32、RGB24 の順番で）最初のフォーマットを使用します。映像が非圧縮フォーマットの場合にはデコーダが使用されないため、このパラメータは何の効果もありません。v2.5 から、pixel_type パラメータのデフォルトは、YV12 に変更されました。別の言葉に置き換えるなら、pixel_type パラメータを指定しなかった場合、AVISource フィルタはその AVI を YV12 として出力しようと試み、もしそれが不可能なら YUY2 として、さらにそれも無理なら RGB として出力します。

AviSynth v2.5 で DivX のクリップを読み込むと、（5.02 以前の） DivX のバグにより、色がおかしくなることがあります（色差チャンネルの U と V がスワップされます）。それを訂正するために、`SwapUV` を使用することができます。

v2.53 から、`AVISource` は、DV type 1 形式のビデオ入力も開くことができます（映像のみ、音声不可）。

v2.55 から、fourCC オプションが追加されています。fourCC は、おもに AVI に関連した、メディアファイルの先頭にある 4 文字のコード（FOUR Character Code）のことで、そのファイルをデコードするためにあなたのシステムがどのコーデックを使用するべきかを教えてくれます。このオプションを使うと、AviSource? に強制的に別のコーデックを使って AVI ファイルを開かせることができます。FOURCC の一覧表は、こちら にあります。デフォルトでは、その AVI の fourCC が使用されます。

MJPEG コーデックや DV コーデックの中には、`AVISource` を使った時に、ITU-R BT.601 に適合した正しい出力を返さないものもあります。この問題は、コーデックの入出力のカラーフォーマットが異なる場合に起こります。例えば、入力のカラーフォーマットが YUY2 で出力のカラーフォーマットが RGB である場合や、またその逆の場合などがそうです。これを解決するには、次の 2 つの方法があります:

1) 強制的に出力を入力のカラーフォーマットと同じにする。例えば、以下のように（入力が RGB の場合）:

    AVISource("file.avi", pixel_type="RGB32")

2) ColorYUVフィルタを使って補正する:

    AVISource("file.avi").ColorYUV(levels="PC->TV")

関連スレッド:
MJPEG codecs
DV codecs

使用例:

    # C プログラマのメモ: バックスラッシュ（訳者註: 日本語環境では、円記号（&#165;）で表示されることが多い。）を二重にしない。フォワードスラッシュも機能する。
    AVISource("d:\capture.avi")
    AVISource("c:/capture/00.avi")
    WAVSource("f:\soundtrack.wav")
    WAVSource("f:/soundtrack.wav")

    # 次は AVISource(&quot;cap1.avi&quot;) + AVISource(&quot;cap2.avi&quot;) と同じ:
    AVISource("cap1.avi", "cap2.avi")

    # 音声を無効化して、RGB デコードをリクエストする
    AVISource("cap.avi", false, "RGB32")

    # Canopus DV コーデックを使用して DV を開く
    AviSource("cap.avi", false, fourCC="CDVC")

    # Xvid コーデックを使用して AVI （たとえば DivX3）を開く
    AviSource("cap.avi", false, fourCC="XVID")

    # いずれか一方が音声を含まない 2 つのクリップを結合する
    # 結合時、これらのクリップは互換性がなければならない（同じビデオおよびオーディオのプロパティを持つ必要がある）:
    A = AviSource("FileA.avi")
    B = AviSource("FileB.avi") # オーディオストリームなし
    A ++ AudioDub(B, BlankClip(A))

いくつかの圧縮フォーマットは、1 つのスクリプトの中で AviSource() を呼び出す回数に制限を課します。50 より少ない AviSource() 文でこの制限を経験した人もいます。こちらの議論を参照してください。

更新履歴:

v2.55 | fourCC オプションを追加。

`原文 Date: 2008/07/11 18:20:45`
`日本語訳 $Date: 2008/08/13 02:48:39 $`

- 訳者註:
  - *1 日本語環境では、円記号（¥）で表示されることが多い。