読む必要のない実験

ffms2 64bit に関して

(インタレ解除とは関係がないので、読まなくてもいいです)
(L-SMASH Works推奨なので、本当に読まなくてもいいです)

 AviSynth+ は、ffms2 の 32 bit のみでも動作しますが、32/64 bit の両方を同時に使用できるようです(誤解を招く書き方かも)。
 逆に、ffms2 64 bit のみだと、この記事のスクリプトでは動きません。
  (ffms2 64 bit のみでも動作するスクリプトは下記)
  *(何故 32 bit と 64 bit が混在していて動くかは、よく分からないのですけど、内部の互換性やらやらのお陰で動いているみたいです。感謝満載です)

以下は謎の実験です。
 目的:64bit版だけでは動かせないのか見る
 環境:ffms2 32 bit → バージョン2.40.0.0 → Plugins+
    ffms2 64 bit → バージョン5.0.0.0 → Plugins64, Plugins64+ 
    バージョン違いを混在した。
 考察:ffms2は、32bitと64bitが両方ある場合、VideoとAudioをそれぞれ別に投げている様子。64 bit に Vedeo を優先してはいるのかも。
    バージョン違いの 32bit/64bit でも問題なく動作している(と思う)。
    むしろ、64 bit だけだとVideoかAudioの片方しか処理できない様子。32 bit だけだと両方を処理できている。
    これが、ffms2本来の挙動なのか、AviSymth+関係の挙動なのか、AviUtl(32bit)影響なのかはわかりません。
    ChatGPT君は、最初「普通、32bitなら32bit、64bitなら64bitだけをつかうから、両方使うなんてありえないわ」と言っていましたが、最終的には「ま、まぁ、ありえなくも⋯⋯ないわね⋯⋯」となりました。

以下は使用したスクリプト

AudioDub(FFVideoSource(X, cache=false), LWLibavAudioSource(X, cachefile="nul")) 

↑キャッシュ残さないバージョン↑
 ※どっちでも良いと思います。
  ↑これだと、64bit ffms2のみで動かせます。
    だから何だって気もします。
↓ キャッシュ残すバージョン ↓

AudioDub(FFVideoSource(X, cache=false), LWLibavAudioSource(X)) 

※※以下の画像の注釈米米
 2.40.0.0 → ffms2 32bit
 5.0.0.0 → ffms2 64bit

Plugins+  あり
Plugins64   あり
Plugins64+ あり

AudioDub( FFVideoSource(X, cache=false), FFAudioSource(X, cache=false) )読み込み可
AudioDub(FFVideoSource(X, cache=false), LWLibavAudioSource(X, cachefile="nul"))読み込可k

Plugins+  なし
Plugins64   あり
Plugins64+ あり
64bitのみ

AudioDub( FFVideoSource(X, cache=false), FFAudioSource(X, cache=false) ) 読み込み不可

別のスクリプトの場合

A = FFAudioSource(X)
V = FFVideoSource(X)
AudioDub(V, A)
1番目のFFAudioSourceが見つからない。
V = FFVideoSource(X)
A = FFAudioSource(X)
AudioDub(V, A)
1番目のFFVideoSourceが見つからない。
AudioDub(FFVideoSource(X, cache=false), LWLibavAudioSource(X, cachefile="nul"))読み込み可

Plugins+  あり
Plugins64   なし
Plugins64+ あり

AudioDub( FFVideoSource(X, cache=false), FFAudioSource(X, cache=false) )読み込み可
AudioDub(FFVideoSource(X, cache=false), LWLibavAudioSource(X, cachefile="nul"))読み込み可

Plugins+  あり
Plugins64  あり
Plugins64+ なし

AudioDub( FFVideoSource(X, cache=false), FFAudioSource(X, cache=false) ) 読み込み可
AudioDub(FFVideoSource(X, cache=false), LWLibavAudioSource(X, cachefile="nul")) 読み込み可

Plugins+  あり
Plugins64  なし
Plugins64+ なし
32bitのみ

AudioDub( FFVideoSource(X, cache=false), FFAudioSource(X, cache=false) ) 読み込み可
AudioDub(FFVideoSource(X, cache=false), LWLibavAudioSource(X, cachefile="nul")) 読み込み可

Plugins+  あり
Plugins64  あり
Plugins64+ あり

AudioDub( FFAudioSource(X, cache=false), FFVideoSource(X, cache=false) ) 読み込み可 - VideoとAudioを逆にしただけ。Vが後だから5.0.0.0になると思ったら、2.40.0.0のままだった。

下の64bitのみの実験が分かりやすいかも。

        上の場合                              下の場合
Audioをffms2x64に投げる。             Videoをffms2x64に投げる。
           ↓                                    ↓
続けて、Videoをffms2x32に             続けて、Audioをffms2x32に
投げたいが見つからない。               投げたいが見つからない。
           ↓                                    ↓
仕方がないので、ffms2x64に投げる。     仕方がないので、ffms2x64に投げる。
           ↓                                    ↓
Audioが押し出されて、なくなる。        Videoが押し出されて、なくなる

ということかもしれない。

avs2yuv64.exeを使い、強制的に64bitのみを使う。
 ・64bitのフィルタのみを使用する。
 ・ffms2は、32/64両方ある環境

AudioDub(FFVideoSource(X, cache=false), LWLibavAudioSource(X, cachefile="nul")) 

・上のスクリプト(音声はffms2を使わない)だと動作(映像/音声問題なし)する。
・下のスクリプトだと動作しない。

AudioDub( FFVideoSource(X, cache=false), FFAudioSource(X, cache=false))

64 bit だけだとひとつのソースしか扱えないようです。
別の環境だと問題はないのかもしれません。
バージョン違いを混在した運用で不具合があるかは不明です。
不安なら、2.40.0.0に統一してください。

ただの、おま環かもしれない。
AviSynth の派生である AviSynth+ や Neo を使っているのだから、難しいね。
混ざっていても動く、どうでもいいことなのかもしれない。
寝よう。
そして、忘れよう。

いいなと思ったら応援しよう!