Windows7 64bit に Avisynth エンコード環境を構築する(3)

とりあえず、わかる範囲で調べて推理してみる。

Avisynthの動作イメージ

Avisynth は、フレームサーバーということで、読み込みは大まかに下記のようになっているはず。
Avisynth動作概念図

  1. 32bit ApplicationでAVSファイルを読み込む
  2. 32bit Applicationからの呼び出しなのでAvisynthも32bitのほうが呼ばれる(Windowsの動作)
  3. avisynth.dll(32bit)は、レジストリに記録されているプラグインフォルダをオートロードする
  4. avisynth.dll(32bit)は、AVSファイルに書かれているソースを読み込み、AVSファイルの記述どおりに処理をしながら32bit Applicationにデータを返す

Avisynthのレジストリアクセス先

こちらもこんな感じになっている

Avisynth 2.5.8

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\AviSynth]
(規定) = C:\AviSynth 2.5
インストールパスを格納
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\AviSynth]plugindir2_5 = C:\AviSynth 2.5\plugins プラグインのパスを格納

Avisynth 2.5.8 MT 64bit

[HKEY_LOCAL_MACHINE\SOFTWARE\AviSynth]
(規定) = C:\AviSynth 2.5\plugins
プラグインのパスを格納
[HKEY_LOCAL_MACHINE\SOFTWARE\AviSynth]
plugindir2_5 = C:\AviSynth 2.5\plugins64
プラグインのパスを格納

Avisynth 2.6

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\AviSynth]
(規定) = C:\AviSynth 2.5
インストールパスを格納
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\AviSynth]
plugindir2_5 = C:\AviSynth 2.5\plugins
プラグインのパスを格納

上記を見てのとおり、Avisynth 2.5.8とAvisynth 2.6は完全に衝突している。(ま、そうだろうね。現時点でAlpha5だし。)
逆に、Avisynth 2.5.8 MT 64bitは64bitのためレジストリも64bit側が呼ばれるため独立しているからそのままでよさそう。

というわけで、Avisynth 2.5.8とAvisynth 2.6のavisynth.dll内のレジストリキー指定箇所を探してみる。

コメントを残す

メールアドレスが公開されることはありません。