ffdshowでAviSynthのフィルタを使う のバックアップソース(No.1)

#contents

* 概要 [#r7380ffb]

ffdshowを経由して再生される動画ファイルに対して、その再生時にAviSynthのフィルタを適用するための手順を説明します。

* 手順 [#f254e4e8]

** 1.ビデオデコーダ設定画面の起動 [#xaff50e7]

#ref(ffdshow_avisynth_start_setting.png)

ffdshowのビデオデコーダ設定画面を開きます。これは、「スタート > すべてのプログラム > ffdshow > Video decoder configuration」から起動することができます。

** 2.AviSynthフィルタの設定 [#o4edd02e]

#ref(ffdshow_avisynth_filter_on.png)

ffdshowのビデオデコーダ設定画面左のメニューから「AviSynth」を選択します。左のメニューか右のフィルタ設定欄中の「AviSynth」左のチェックボックスにチェックを入れると、AviSynthフィルタが利用できるようになります。

実際にAviSynthのフィルタを利用するためには、設定画面下のテキストエリアに既存のスクリプトを読み込ませるか、新規にスクリプトを作成する必要があります。設定画面の各項目については、下記の[[設定画面の説明>#l02a431d]]を参照。

*** 2-1.既存のAVSファイルを読み込む [#mcb019b7]

[Load] ボタンをクリックすると、既存のAVSファイルを開くためのダイアログが開きます。AVSファイルを選択して、「開く」をクリックしてください。

#ref(ffdshow_avisynth_after_loading_avs.png)
読み込まれたAVSファイルの内容が表示されます。

「add ffdshow source video」のチェックが有効の場合、ffdshowを経由してAviSynthにクリップが渡されます。このため、クリップの読み込み行は必要ありません([[設定画面の説明>#l02a431d]]を参照)。

*** 2-2.スクリプトの新規作成/編集 [#d4f99c50]

テキストエリアに読み込まれたAviSynthスクリプトは、直接、編集することができます。また、既存のAVSファイルを読み込ませずに、一からスクリプトを作成することも可能です。

#ref(ffdshow_avisynth_edit.png)
このように直接編集してスクリプトを追加したり、変更したりできます。

*** 2-3.スクリプトの保存 [#s4c7e02d]

[Save] ボタンをクリックすると、保存先のフォルダとファイル名を指定するダイアログが開きます。テキストエリアの現在のスクリプトをAVSファイルとして保存することができます。

** 3.設定の適用 [#we34d293]

#ref(ffdshow_avisynth_apply_button.png)

設定が完了したら、画面右下の [Apply](適用)ボタンをクリックします。これで、変更が適用されます。

** 4.クリップの再生(メディアプレイヤーの再起動) [#wc4413cf]

クリップを再生すると、AviSynthのフィルタ適用されます。すでにメディアプレイヤーを起動している場合は、一度閉じて、再起動してください。

-AviSynthフィルタ未使用時((下の画像は、Media Player Classicの「ファイル > 画像の保存」から保存した画像をPNG形式に変換したものです。))
#ref(ffdshow_avisynth_snapshot_org.png)
-AviSynthフィルタ適用時
#ref(ffdshow_avisynth_snapshot.png)
画面は、「[[2-2.スクリプトの新規作成/編集>#d4f99c50]]」のスクリプトを実行したところ。

* 設定画面の説明 [#l02a431d]

#ref(ffdshow_avisynth_filter_off.png)

-□AviSynth: 
--左のチェックボックスにチェックを入れると、ffdshowでAviSynthフィルタが利用できるようになります。ffdshow経由でクリップを再生する時に、下のテキストエリアに書かれたAviSynthのスクリプトが適用されます(初期状態では無効)。
-□add ffdshow source video: 
--左のチェックボックスにチェックを入れると、ffdshowが受け取ったクリップをAviSynthスクリプトに渡します(初期状態で有効)。
-[Load] ボタン: 
--既存のAVSファイルを開きます。
-[Save] ボタン: 
--テキストエリアの現在のスクリプトを保存します。
-Input colorspaces: 
--入力するクリップの色空間を指定します。初期状態では、すべての色空間が有効になっています。
-テキストエリア: 
--Loadボタンから読み込んだAviSynthスクリプトが読み込まれます。読み込まれたスクリプトや新規のスクリプトを、直接、このエディタ欄で編集することも可能です。

* 注意 [#ae327e78]

-使用するフィルタ(の数や重さ)によっては、再生に支障が生じる可能性があります。
-ffdshowを経由せずに再生されるクリップに対しては、AviSynthフィルタは適用されません。
--ffdshowを経由して再生させたい場合
+++ffdshowのビデオデコーダ設定画面のCodecsメニューから、ffdshowを使って再生させたいフォーマット(Format)を選択。
+++Decoderを「Disabled」'''以外'''に変更。
#ref(ffdshow_avisynth_codecs_setting.png)
+++変更適用後、そのフォーマットのクリップは、ffdshowを経由して再生されるようになります(メディアプレイヤーを開いている場合は、要再起動)。
-「add ffdshow source video」のチェックがオフの場合、下記のようなエラーが出ることがあります(画面は、[[2-1.既存のAVSファイルを読み込む>#mcb019b7]]を開いたところ)。これは、ffdshow経由でAviSynthにクリップ(ffdshow source video)が渡されていないことによるものです。
#ref(ffdshow_avisynth_error_not_added_source.png)
「add ffdshow source video」のチェックをオンにするか、ffdshowの設定画面のテキストエリアにクリップの読み込み行を追加することによってエラーは出なくなります。ただし、後者の方法では、クリップの長さなどの情報は、メディアプレイヤーで開いたクリップ(ffdshow source video)のものが使われます。

* リンク [#lc14c378]

-[[此方より彼方まで... ffdshowの設定 〜Avisynthを用いたデインターレース〜:http://felmina.blog61.fc2.com/blog-entry-28.html]]
--AviSynth用のTDeintプラグイン([[インターレース解除]]を参照)を使ってffdshowでインターレース解除する方法を解説されています。