x264guiEx 3.01
※ 2022/3/13 14:45 x264guiEx 3.01に更新しました。
x264guiEx 3.00の不具合修正です。申し訳ありません。
これまでもx264guiExでは、簡易インストーラを作成するなどして、なるべく簡単に導入できるようにしてきたつもりだが、やはり導入が難しい、あるいはうまくいかない、エラーが起こるというケースが多いみたいだ。
というわけで、とりあえずwebやtwitter上を探して、どういう事例があるのか調べてみた。
エラーや、エラーでなくても戸惑うポイントの例
・Onedrive/google driveでどれをダウンロードしていいかわからない。
旧バージョンのフォルダとかが紛らわしい。それに、やはり最近はgithubのほうが馴染み深いかもしれない。
・zipファイルを展開せずに簡易インストーラを実行してエラー
明示的に展開しなくてもよい( = 開くだけでよい) ようにしたい。
・簡易インストーラで、ダウンロードに失敗
→ すでにx264等の実行ファイルは同梱済み。VC runtimeのダウンロードに失敗している?
・簡易インストーラで、Aviutlのパス指定に戸惑う
やはりほかのプラグインと同じように、エクスプローラーでファイルコピーのほうが直感的。
・x264guiExがAviutlに認識されない
Windows 8.1/10/11環境を一通り確認したが、Windows Updateをしていれば.NET Frameworkは自動的に導入されていることがほとんど。ということはVC runtimeがインストールされていないのだと思う。これもやはり簡易インストーラでのVC runtimeのダウンロードに失敗するのが根本的な原因かもしれない。
・「ファイルの出力に失敗しました。」といきなり出る
・neroaacencが存在しない…
設定がなされていない場合(あるいは飛んだ)に起こる。x264guiEx 2.72で前回出力時の設定を自動で読み込むようにして対策済み。
・x264.exe の場所が指定されていません。
簡易インストーラを使用していればパスは自動的に入っているはずだが、設定が飛んで空欄になったとか、あるいは指定されているけど存在しないというケースがあるようだ。
そもそも、実行ファイルのパスの指定というのがややこしく厄介に思われる方も多いようだ。ということはパスの指定をしなくても動くようにする必要がある。
・x264に不正なパラメータ(オプション)が渡された可能性があります。
わからん。英語のエラーメッセージを読む、あるいは、とりあえずデフォルトで出力してください…。
・qaacエンコードに失敗する
・CoreAudioToolbox.dll:指定されたモジュールが見つかりません。
とりあえず AAC (ffmpeg) をデフォルトにして対策したつもりだが、古いx264guiExをお使いの方だろうか?
・音声の長さが動画の長さと大きく異なるようです。
わからん…なぜだ…
・muxに失敗する
・mux後ファイルが見つかりませんでした
muxerの指定が間違っているケースとかもあるようだが、多くは原因不明。(ひとつひとつ細かく見ればわかるだろうが…)
たまにmuxerがウイルス対策ソフトにウイルス扱いされて消される場合もあってこれが一番厄介(気づかないし)。
x264guiEx 3.00の変更
ということで、発生するエラーは多岐に及ぶので、もう少し改善する必要がありそう。
さらに導入しやすくして、エラーを発生しづらくするため、x264guiEx 3.00では、
・導入時はzipファイルの中身をAviutlフォルダにコピーするだけ
→ 簡易インストーラを起動する導入法は廃止する
→ とにかくすべて同梱する (ダウンロードエラーの回避)
・設定しなくてもすぐ使用できる
→ パスの指定をしなくてもいいように
ようにしてみた。これで、導入がうまくいかないケースが減ってくれるとよいのだが…。
3.00に上げるのと同時にいくつか変更をしている。
・簡易インストーラによる導入を廃止。
「中身をAviutlフォルダにコピーするだけ」なのでいらなくなった。実際にはAviutl起動時に動かす感じ。
※実行ファイルのパスを指定している場合、x264が自動では更新されなくなる(古い実行ファイルのパスのままになる)ので注意してください。
・Visual Studio 2022に移行。
せっかくなので開発環境も移行した。
・.NET Framework 4.8に移行。
これまでx264guiExは.NET Framework 4.5.2ベースだったが、これは2022/4/26までがサポート期限だということなので、4.8に移行することにした。
.NET Framework 4.8はWindows Updateが行われていれば、Win8.1/Win10 1903以降/Win 11では導入済みのことを確認したので、これらの環境で動くのなら特に問題はないはず。
・パッケージのフォルダ構成を変更。
「中身をAviutlフォルダにコピーするだけ」のために必要な変更。
x264guiExプラグインだけでなく必要な実行ファイル(x264.exe, ffmpeg_audenc.exe, muxer.exe, remuxer.exe)、さらにVC runtimeをインストールするのに必要な実行ファイルもすべて同梱して、ダウンロードに失敗する可能性をなくした。
ウイルス対策ソフトに消される可能性は残るけど、それはいかんともしがたい。
・配布場所をgithubに移行。
onedriveやgoolge driveに置いていると、zipファイルの中をスキャンして、挙句実行ファイルをウイルス扱いしてzipを削除するようなトラブルが起こることがあった。
・実行ファイルのパスが指定されていない場合、exe_files内の実行ファイルを検索して使用するように。
「設定しなくてもすぐ使用できる」に必要な変更。
パスを指定しなくても、zipファイルと同じフォルダ構成であれば、実行ファイルを自動で見つけて使用するようにした。
したがってパス設定欄が空白でも問題ありません。
もちろん、今まで通りパスを指定して使用することもできる。
・ログに使用した実行ファイルのパスを出力するように。
自動で見つけたといっても結局どれを使ってるの? というのを確認するため。
・mp4box向け設定ファイルを廃止。
継続的なテストが困難で、また導入時の迷いのもととなるため。
・相対パスでのパスの保存をデフォルトに。
Aviutlをフォルダごと移動してもなるべく問題が生じないようにするため。
x264guiEx 3.01での修正
・x264/音声エンコーダの指定がないときの設定画面のエラーを回避。
・設定画面でパス指定がないときは実行ファイルを自動選択することを表示するように。
こんな感じで、ただパスの指定欄を空欄にしておくのではなくで、exe_files内から自動選択することを明示するようにした。

x264guiEx 3.00 の導入・更新方法はこちら。
x264guiEx 3.00 の削除方法はこちら。
ダウンロード>>
ソースはこちら
x264guiEx 3.00の導入の流れは、上記リンクの通りだけど、実際の動きはどうなっているかというと
1. exe_filesとpluginsフォルダをすべてAviutlフォルダにコピーする。
2. この状態でAviutlを起動する。
3. pluginsフォルダ内のauo_setup.aufがAviutlにx264guiEx.auoより先に読み込まれる。
auo_setup.aufは、これは0個のフィルタを登録するフィルタプラグインで、初期化時にVC runtimeと.NET Frameworkのチェックを行う。(ほとんどの環境で.NET FrameworkはOS標準でインストール済み)
VC runtimeのチェックにはexe_files内のcheck_vc.dll、.NET Frameworkのチェックにはcheck_dotnet.dllを使用する。
VC runtimeなどのインストールが必要なら、exe_files内のauo_setup.exeを実行し、これが同じくexe_files内のVC_redist.x86.exeを呼ぶなどして、VC runtimeをインストールする。
なお、このプラグインの作成方法として、こちらの資料を参考にさせていただきました。ありがとうございました。
あるフィルタプラグインのfunc_initより必ず先に実行する
4. auo_setup.aufの処理が終わると、x264guiEx.auoをロードする条件は整っているので、問題なくロードできる。
とこんな感じなので、一度導入が完了したら、auo_setup.aufは削除しても構いません(もちろんしなくてもよい)。
今回からauo_setupのソースコードも公開することとしました。こちらに置いてあります。
x264guiEx 3.00の不具合修正です。申し訳ありません。
これまでもx264guiExでは、簡易インストーラを作成するなどして、なるべく簡単に導入できるようにしてきたつもりだが、やはり導入が難しい、あるいはうまくいかない、エラーが起こるというケースが多いみたいだ。
というわけで、とりあえずwebやtwitter上を探して、どういう事例があるのか調べてみた。
エラーや、エラーでなくても戸惑うポイントの例
・Onedrive/google driveでどれをダウンロードしていいかわからない。
旧バージョンのフォルダとかが紛らわしい。それに、やはり最近はgithubのほうが馴染み深いかもしれない。
・zipファイルを展開せずに簡易インストーラを実行してエラー
明示的に展開しなくてもよい( = 開くだけでよい) ようにしたい。
・簡易インストーラで、ダウンロードに失敗
→ すでにx264等の実行ファイルは同梱済み。VC runtimeのダウンロードに失敗している?
・簡易インストーラで、Aviutlのパス指定に戸惑う
やはりほかのプラグインと同じように、エクスプローラーでファイルコピーのほうが直感的。
・x264guiExがAviutlに認識されない
Windows 8.1/10/11環境を一通り確認したが、Windows Updateをしていれば.NET Frameworkは自動的に導入されていることがほとんど。ということはVC runtimeがインストールされていないのだと思う。これもやはり簡易インストーラでのVC runtimeのダウンロードに失敗するのが根本的な原因かもしれない。
・「ファイルの出力に失敗しました。」といきなり出る
・neroaacencが存在しない…
設定がなされていない場合(あるいは飛んだ)に起こる。x264guiEx 2.72で前回出力時の設定を自動で読み込むようにして対策済み。
・x264.exe の場所が指定されていません。
簡易インストーラを使用していればパスは自動的に入っているはずだが、設定が飛んで空欄になったとか、あるいは指定されているけど存在しないというケースがあるようだ。
そもそも、実行ファイルのパスの指定というのがややこしく厄介に思われる方も多いようだ。ということはパスの指定をしなくても動くようにする必要がある。
・x264に不正なパラメータ(オプション)が渡された可能性があります。
わからん。英語のエラーメッセージを読む、あるいは、とりあえずデフォルトで出力してください…。
・qaacエンコードに失敗する
・CoreAudioToolbox.dll:指定されたモジュールが見つかりません。
とりあえず AAC (ffmpeg) をデフォルトにして対策したつもりだが、古いx264guiExをお使いの方だろうか?
・音声の長さが動画の長さと大きく異なるようです。
わからん…なぜだ…
・muxに失敗する
・mux後ファイルが見つかりませんでした
muxerの指定が間違っているケースとかもあるようだが、多くは原因不明。(ひとつひとつ細かく見ればわかるだろうが…)
たまにmuxerがウイルス対策ソフトにウイルス扱いされて消される場合もあってこれが一番厄介(気づかないし)。
x264guiEx 3.00の変更
ということで、発生するエラーは多岐に及ぶので、もう少し改善する必要がありそう。
さらに導入しやすくして、エラーを発生しづらくするため、x264guiEx 3.00では、
・導入時はzipファイルの中身をAviutlフォルダにコピーするだけ
→ 簡易インストーラを起動する導入法は廃止する
→ とにかくすべて同梱する (ダウンロードエラーの回避)
・設定しなくてもすぐ使用できる
→ パスの指定をしなくてもいいように
ようにしてみた。これで、導入がうまくいかないケースが減ってくれるとよいのだが…。
3.00に上げるのと同時にいくつか変更をしている。
・簡易インストーラによる導入を廃止。
「中身をAviutlフォルダにコピーするだけ」なのでいらなくなった。実際にはAviutl起動時に動かす感じ。
※実行ファイルのパスを指定している場合、x264が自動では更新されなくなる(古い実行ファイルのパスのままになる)ので注意してください。
・Visual Studio 2022に移行。
せっかくなので開発環境も移行した。
・.NET Framework 4.8に移行。
これまでx264guiExは.NET Framework 4.5.2ベースだったが、これは2022/4/26までがサポート期限だということなので、4.8に移行することにした。
.NET Framework 4.8はWindows Updateが行われていれば、Win8.1/Win10 1903以降/Win 11では導入済みのことを確認したので、これらの環境で動くのなら特に問題はないはず。
・パッケージのフォルダ構成を変更。
「中身をAviutlフォルダにコピーするだけ」のために必要な変更。
x264guiExプラグインだけでなく必要な実行ファイル(x264.exe, ffmpeg_audenc.exe, muxer.exe, remuxer.exe)、さらにVC runtimeをインストールするのに必要な実行ファイルもすべて同梱して、ダウンロードに失敗する可能性をなくした。
ウイルス対策ソフトに消される可能性は残るけど、それはいかんともしがたい。
・配布場所をgithubに移行。
onedriveやgoolge driveに置いていると、zipファイルの中をスキャンして、挙句実行ファイルをウイルス扱いしてzipを削除するようなトラブルが起こることがあった。
・実行ファイルのパスが指定されていない場合、exe_files内の実行ファイルを検索して使用するように。
「設定しなくてもすぐ使用できる」に必要な変更。
パスを指定しなくても、zipファイルと同じフォルダ構成であれば、実行ファイルを自動で見つけて使用するようにした。
したがってパス設定欄が空白でも問題ありません。
もちろん、今まで通りパスを指定して使用することもできる。
・ログに使用した実行ファイルのパスを出力するように。
自動で見つけたといっても結局どれを使ってるの? というのを確認するため。
・mp4box向け設定ファイルを廃止。
継続的なテストが困難で、また導入時の迷いのもととなるため。
・相対パスでのパスの保存をデフォルトに。
Aviutlをフォルダごと移動してもなるべく問題が生じないようにするため。
x264guiEx 3.01での修正
・x264/音声エンコーダの指定がないときの設定画面のエラーを回避。
・設定画面でパス指定がないときは実行ファイルを自動選択することを表示するように。
こんな感じで、ただパスの指定欄を空欄にしておくのではなくで、exe_files内から自動選択することを明示するようにした。

x264guiEx 3.00 の導入・更新方法はこちら。
x264guiEx 3.00 の削除方法はこちら。
ダウンロード>>
ソースはこちら
x264guiEx 3.00の導入の流れは、上記リンクの通りだけど、実際の動きはどうなっているかというと
1. exe_filesとpluginsフォルダをすべてAviutlフォルダにコピーする。
2. この状態でAviutlを起動する。
3. pluginsフォルダ内のauo_setup.aufがAviutlにx264guiEx.auoより先に読み込まれる。
auo_setup.aufは、これは0個のフィルタを登録するフィルタプラグインで、初期化時にVC runtimeと.NET Frameworkのチェックを行う。(ほとんどの環境で.NET FrameworkはOS標準でインストール済み)
VC runtimeのチェックにはexe_files内のcheck_vc.dll、.NET Frameworkのチェックにはcheck_dotnet.dllを使用する。
VC runtimeなどのインストールが必要なら、exe_files内のauo_setup.exeを実行し、これが同じくexe_files内のVC_redist.x86.exeを呼ぶなどして、VC runtimeをインストールする。
なお、このプラグインの作成方法として、こちらの資料を参考にさせていただきました。ありがとうございました。
あるフィルタプラグインのfunc_initより必ず先に実行する
4. auo_setup.aufの処理が終わると、x264guiEx.auoをロードする条件は整っているので、問題なくロードできる。
とこんな感じなので、一度導入が完了したら、auo_setup.aufは削除しても構いません(もちろんしなくてもよい)。
今回からauo_setupのソースコードも公開することとしました。こちらに置いてあります。
スポンサーサイト