10 Apr 2014

AviSynth: 32bit/64bit 使い分け

AviSynth+の登場により64bitなAviSynthの利用が以前に比べ格段に容易になった.
しかも32bitに遜色ない程度に安定している.
メモリを多く必要とされる場面で64bitなAviSynthを使えることはかなりのメリットである.
実際私が日常的にエンコードに使用しているスクリプトはかなりメモリを食う類のものであり重宝している.
しかしそれでもなかなか64bitに移行できない理由があるようだ.
その1つがtwitterのTLでも話題になってたことだが64bit版のAvsPmodの入手性にあるようだ.
現在64bit版のAvsPmodは2つのtest buildがircで配布されただけで公には公開されていない.
編集は32bitでやればいいじゃないと思うかもしれないがおそらくそういう人達はごく最近AviSynthを触るようになったのだと思う.
それなりに古くから使ってる人や古い情報でAviSynthを学び使い始めた人はAviSynthのプラグインオートローディングをあまり信用していない.LoadPluginで手動でロードする.
そんな傾向がある.私も手動でロードしている.
だが,現在AviSynth+を使う場合気にせずオートロードして問題があるかと言われればおそらくないだろう.
それでもなかなか習慣というのは変えられるものではないしオートローディングフォルダを使わず自分でフォルダ分けした方が管理が容易だということもある.
それではどうすればいいか?
いちいち編集時は64bit用のLoadPluginはコメントアウトしてエンコーダに渡す前にアンコメントし32bit用の方をコメントアウトするか.勿論それで上手くいくがまあ面倒ではある.
そんな時は64bit/32bitで処理を分岐させればいい
avs制御用ユーザー定義関数 で書いたように

function is_x86_64()
{
    ver_str = VersionString()
    ver_str = LeftStr( RightStr( ver_str, 4 ), 3 )

    return StrCmpi( ver_str, "x64" ) == 0 ? true : false
}

といった関数を使い

PluginDir = is_x86_64() ? "path/to/64bit_plugins_dir" \
                        : "path/to/32bit_plugins_dir"
とする.あとは32bit用のフォルダと64bit用のフォルダの下位ディレクトリ構成を一致させればいい
勿論avsを読み込むプログラムによって読み込み先を変えてもいい.
※2014/04/11 追記
"path/to/64bit_plugins_dir"の後ろに"\"(バックスラッシュ)忘れてたので付け足した
---追記ココまで---

No comments:

Post a Comment