ニコニコがx265に対応したというニュースが出ていたが、そんなタイミングでx264の話になってしまってすまない。
どうせならいっそのこと、この問題を解決するためにx265が導入できればいいのかもしれない。
しかし、長い間x264出力をやってきて、何度もぶつかる壁があったので、今日は解決に取り組んでみた。


------------------------------------------


AVIUTLで動画編集やエンコードを行う人は、数年前はFLV出力プラグインを使って出力していたのではないだろうか。
そして、x264対応になって、この記事のタイトルにもあるmp4input.auiを導入してx264動画の入出力をしてきたと思う。

が、このプラグインはだいぶ前に更新終了となっていて、問題が起きやすい上、今は解決に当たっている人もいないという代物なのだ。
だから、実は、できるだけ使わないほうが良いわけなのだが、代替プラグインがあることを知らないとこれを使い続けてしまう。
私のように!!!


今日は色々調べた結果、他にもmp4入出力用のプラグインがあり、
それは、現在も更新が続いている「生きたプラグイン」であることもわかった。
そこで、早速、mp4input.auiにおける出力エラーの恐怖から逃れるべく、プラグインの交換作業を行ってみたのだ。


まず参考にしたページを張ってしまおう。
私のように、現在、mp4input.auiを使っている人は、以下を参考に交換してみた方がいいかもしれない。
AviUtlで「例外"0xc0000005"が発生しました」 エラー -ベルの備忘録的なもの
x264guiEx 2.xx 導入 (手動)
まぁエラーが頻出しないならいいんだけど…。
(MP4データを拡張編集でカットなどして編集し、再度MP4として吐き出そうとすると、このエラーはよく出る)


今日までの私のAVIUTLの環境と、上記リンク先を参考に行った今回の変更点を以下にまとめる。

元々、私が使っているMP4ファイル読み込みプラグインは上記の通り「mp4input.aui」のみだった。
これについては、3つのバージョンを持っているのだけど、
どれに差し替えてもエンコードのどこかのタイミングで「例外」が起こり、正常に書き出せなくなった。
そしてMP4書き出しのプラグインは、拡張 x264 出力(GUI) (seraphy氏作)だったわけだが、これもExの方に変えることにした。
というわけで変更は以下の通り。


手順1:手順4のファイルを動作させるためにランタイムを確認、インストールする。(修正・上書き)
手順2:各種動画ファイルの読み込みのためのプラグインとして「L-SMASH File Reader」を導入する。
手順3:MP4書き出しに必要な「L-SMASH」各種EXEファイルを入手する。
手順4:ファイル書き出しのためのプラグインとして「x264guiEx(v2以降)」を導入する。



------ ここから実際の手順 --------------

手順1:手順4のファイルを動作させるためにランタイムを確認、インストールする。

まずこれをインストールしなければ、手順4でインストールするものが動かないので先にやろう。
Visual Studio 2012 更新プログラム 1 の Visual C++ 再頒布可能パッケージ
OSがXPの場合は以下も追加インストールが必要。(7以降はデフォルトで入っているらしい)
.NET Framework 4.0 Client Profile
Microsoft .NET Framework 4 Client Profile 日本語 Language Pack (x86/x64)


手順2:各種動画ファイルの読み込みのためのプラグインとして「L-SMASH File Reader」を導入する。

L-SMASH File Reader は、このページの「L-SMASH Works (現在の最新はr717)」というファイルに入っている。
最新版の「L-SMASH Works」をDLして解凍しよう。
すると、そこに「lwinput.aui」「lwdumper.auf」「lwmuxer.auf」というファイルがあるはずだ。
これが「L-SMASH File Reader」というプラグインの実体なので、
このファイルをAVIUTLのaviutl.exeがあるフォルダに同居させるか、
aviutl.exeと同じフォルダ内に「Plugins」というフォルダを手動で作成しそこに投げ込んでおく
これで、AVIUTL起動時に、追加プラグインとして読み込まれる。

導入作業はこれでおしまいなのだが、今後のエラーを避けるために、入力プラグインの優先順位を変更したり、
要らなくなったプラグインを削除したりしよう。

AVIUTLを起動し、
「ファイル」→「環境設定」→「入力プラグイン優先度の設定」
と進むと、優先度変更の画面が出るので、「L-SMASH File Reader」を「上に移動」する。
いっそ一番上でもいいみたい。特にMP4の「読み込み」が多い場合。

この入力プラグイン一覧の中では、「MP4 File Reader」や「DirectShow File Reader」が、よく例外エラーを吐くので、
これらは一番下でよい。
「L-SMASH File Reader」が正常動作することを確認できた後は、AVIUTLフォルダから
mp4input.auiやds_input.auiのファイル自体を削除してしまえば、このリストからも消える。
これでAVIに変換してからAVIUTLに入れて編集すれば、エラーは滅多に起こらなくなる。


次に、「L-SMASH File Reader」を導入した途端、AVIUTLが重くなって編集どころではなくなったという場合の対処法も。

「ファイル」→「環境設定」→「入力プラグインの設定」→「L-SMASH Works File Readerの設定」
と進むと、プラグインの設定画面が起動。
一番上の「Libav+L-SMASH」のチェックをはずすとマシになるみたいだが、果たして…!


ちなみにMP4の読み込みにはmp4input.auiをこれまで利用していて、L-SMASH File Readerに差し替えるというのが今回の要だが
「ds_input.aui」はどうなのというと、これを削除してL-SMASH一本にした場合は、WMVは読み込めなくなるらしい。
WMVをAVIUTL上でいじることなど、一切ありえないというならds_input.auiもいらないわけだが、
もし、手持ちのWMVをAVIUTLで編集したいなら、Super@などを使って別の拡張子の動画ファイルに変換すればよいかもしれない。
(尚、Super@は、インストール時、さりげなく関係ないソフトを一緒にインストールさせようとしてくるので、
使用条件の承諾画面のところは要注意。関係ない窓がスッと重なってくる。ホイホイ承諾しないように。)
<追記 2020/3/9>
ファイルの変換には「XMedia Recode」も大変オススメだ。
あらゆるファイルを変換出来るし、更新が続いている”生きた”アプリケーションだ。
Downloadのページで、自分のOSにあった方(64bit/32bit)をDLして解凍、インストール。


手順3:MP4書き出しに必要な「L-SMASH」各種EXEファイルを入手する。

これもL-SMASHという名前なので紛らわしいが、今度は、rigaya氏のOneDriveから「L-SMASH (現在の最新はrev962)」というファイルをDL。
この圧縮ファイルの中には、EXEファイルが4つ入っているので、これらをaviutl.exeと同居させよう。

また、MP4書き出しには、x264.exeも必要である。
これについても、以前はseraphy氏のものを用いていたが、POP氏の「x264_L-SMASH (現在の最新はr2409)」などをDLすればそこから取り出せる。
取り出したx264.exeも、aviutl.exeと同居させよう。



手順4:ファイル書き出しのためのプラグインとして「x264guiEx(v2以降)」を導入する。

簡易インストーラーも存在するが、すでにこの記事は「手動インストール」について書いて来ているので、
このまま手動の前提で進む。
(私自身、最初に簡易インストーラーを試したところ、インストールに失敗したため)

まず、「x264guiEx」を、rigaya氏のOneDriveから入手。
解凍したら、「auo」フォルダの中身を丸ごとaviutl.exeと同居させるか、Pluginsフォルダに入れる。

これで、導入は完了。
手動のほうが簡単かもね!


これまで、MP4エンコードを既にやっていた人なら、Nero(音声エンコーダー)はもう持っていると思うけど
今回初めてMP4エンコードに挑戦する人は、上記の手順1〜4だけではこれが不足しているので、
簡易インストーラー(auo_setup.exe)を使ってNeroを入手するのはアリかもしれない。
私はすでにNeroは持っているから、他の必要なプラグインファイルをコピペするだけで良かったというわけ。

ただ、L-SMASH一式を導入した後も、別のエラーが出てエンコード自体は成功しないため、
問題が根本解決に至っていないようだ。もう少し試行錯誤が必要っぽい。