AviUtlで「例外"0xc0000005"が発生しました」 エラー
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

AviUtlで「例外"0xc0000005"が発生しました」 エラー

2013-11-17 20:56
  • 18
  • 183
※2016.1/4追記:POP 4bit様のサイトが安定してきたようですのでL-SMASH File Reader(lwinput.aui)のミラーを勝手ながら終了させて頂きます。申し訳御座いません。
SetLAA.exeのリンクも暫定的に変更しました。


AviUtlを使っている方々なら幾度と無く遭遇するであろうこのエラー。
しかも、エラーが出たら、基本的に「はい」「いいえ」いずれを選んでもAviUtlがフリーズしてしまい、それまでの編集が消えてしまいます。
ここでは、面倒なそのエラーの対処法を書いていきたいと思います。

※この記事は万能ではありません。問題が解決しなかったり、いかなる不具合が起きたとしても、この記事の筆者、及びAviUtlの各種プラグイン開発者などはその責を負いかねます。

ここで説明するのは以下の5項目です。

・入力プラグイン「L-SMASH File Reader」の導入
・各種プラグインの最新版への更新
・キャッシュフレーム数・最大解像度・最大フレーム数を必要最小限に設定
・Large Address Awareを有効にする
・メモリ最適化を行う

このうち、上から3つはすべての環境で推奨…というか、必須に近いものです。
4つ目は64bitOSの方向けです。32bitOSをご利用の方の場合、3GBスイッチなどの単語を知らない場合、諦めた方が良いです。というかそもそもオススメしていません。
5つ目は、やる気のある方のみ行って下さい。


1.入力プラグイン「L-SMASH File Reader」の導入
比較的安定した読み込みが可能になるプラグイン「L-SMASH File Reader」を導入します。
こちらのプラグインでは、非常に幅広い動画形式の読み込みが可能になるので、導入して損は無いと思います。
・DirectShow File Reader(ds_input.aui)
・MP4 File Reader(mp4input.aui)
などを導入している場合、この項で解説する設定を行って、優先順位を下げて下さい。

POP@4bit

こちらの左上の「バイナリを選択」より、「L-SMASH Works rxxx [Latest]」というファイルをダウンロードします(xxxの中の番号は、その時によって違います。更新時804でした)。
そのフォルダを展開し、その中にある「lwinput.aui」というファイルを、AviUtlと同じフォルダか、その中の「plugins」フォルダに置きます。

※以前DL出来た「r708」は、MP4ファイルのうち一部のファイル(isomコンテナなど)の読み込み時にエラーが発生するなど不安定ですので、最新のr804に変更して下さい。
変更は、上書きするだけで可能です。

AviUtlを起動し、「ファイル」→「環境設定」→「入力プラグイン優先度の設定」から、以下のウィンドウが表示されます。



ここで、画像のように、問題が起きやすいプラグインより「L-SMASH File Reader」が上になるように配置します。可能なら、「AVI/AVI2 File Reader」以外の全てのプラグインより上になるようにした方が無難です。
その後、AviUtlを閉じて、導入は終了です。もし不要でしたら「ds_input.aui」「mp4input.aui」などの入力プラグインファイルは、AviUtl関連フォルダから削除してしまって構いません。
L-SMASH File Readerのみで、ほぼ全ての動画・音声ファイルが正常に読み込め、編集にも影響を及ぼしません。なお、WMV形式のファイルを正常に読み込むには、L-SMASH File Reader r725以降が必要です。
ただ、読み込み時にフレームレートがおかしくなる場合がありますので、元ファイルのフレームレートと一致するかどうかを読み込み後に確かめてから編集されることを推奨します。そのため、拡張編集への直読み込みは推奨出来ません。
また、拡張編集にWMVやMP4動画を読み込む場合は、一度別形式(筆者はAVI形式の可逆圧縮コーデック「UT Video Codec Suite」を強く推奨します)へ変換し、その後拡張編集に読み込まれることを推奨します。

※L-SMASH File Readerでこのエラーが出た場合には、L-SMASHのバージョンが古い、もしくは後述の理由で、AviUtlの利用可能なメモリが足りていない可能性があります。
バージョンが古い場合には、即座に更新して下さい。古いバージョンを使い続ける意味はありません。必ず最新版に更新し続けて下さい。特にr708を使っている場合には、必ず更新して下さい。

また、AviUtlは可変フレームレート(VFR)の動画を本来は扱うことが出来ません。そのため、ハードウェアエンコードのキャプチャボードを使用していたり、NVENCなどのエンコーダを使用して動画を録画し、動画がVFRになってしまった場合には音ズレなどが発生する可能性があります。
そういった場合は以下の方法で、強制的に固定フレームレート(CFR)扱いにして読ませます。
この方法を行うにはL-SMASH File Reader r775以降が必要です。

「ファイル」→「環境設定」→「入力プラグインの設定」→「L-SMASH Works File Readerの設定」
から以下の赤枠の設定を行います。



VFR→CFRの左のチェックを入れ、そのすぐ右側の○/○のところに読ませたいフレームレートを入力します。
例えば…
23.976fps…24000/1001
29.97fps…30000/1001
30fps…30/1
59.94fps…60000/1001
60fps…60/1
こんな感じになるように入力し、「OK」→「OK」を押してからAviUtlを再起動します。
その後、VFRな動画を読みこめば、普通の動画と同じように読み込め、音ズレも解消されるはずです。
ただ、筆者も一部動画で不具合を確認していますので、万能ではありませんし、エラーが起きる可能性もありますのでその点はご承知置き下さい。
なお、本来のfpsよりも下げて使った場合相当ガクガクになりますので、適切なレートを指定した上でご利用下さい。
また、このオプションはVFR読み込みが終了し次第オフにして下さい。普通の動画を読み込んだ場合にガクガクになったり、逆にフレームが増えすぎて処理に時間が掛かったりする可能性があります。
そのためこのオプションは、WMVやMP4ファイルなどと同様、編集素材用の中間出力、もしくは直接エンコード専用に利用するのが最適だと思われます。
この読み込み方法で不具合を生じる場合は、VFR読み込みにネイティブで対応しているHandBrakeなどで一度変換してからAviUtlに読み込むか、もしくは該当動画を再生し、その状態でキャプチャすると改善する可能性があります。

※また、このオプションにおいて、一番左上の「Libav+L-SMASH」のチェックを解除して同様に「OK」→「OK」→再起動を行うと、今まで不具合で読めなかったり、極端に重くなったり、途中でエラーが発生していた動画が読めるようになるなどの可能性があります。



どうしてもダメな場合にはやってみるのも良いかもしれません。
その場合にもやはり、該当動画の処理が終わり次第復元することを推奨します。


2.各種プラグインの最新版への更新
古くてエラーの発生しやすいプラグインを使っている場合は、最新の環境に準拠した新しく安定したプラグインへの移行を推奨します。
例として、拡張x264出力(GUI)を使っている場合には「拡張x264出力(GUI)Ex」への移行を推奨します。
型自体が古くなくとも、L-SMASHのように頻繁に更新されるものに関しては、常に最新版へ更新することを心掛けましょう。
参考までに、修正時点で…
・AvUtl本体…1.00
・拡張編集…0.92
・L-SMASH File Reader…r804
・拡張x264出力(GUI)Ex…2.35
が最新版となっています。

※「Wavelet3DNR2」などのWavelet系プラグインを利用している場合、エラーの大半はこのプラグインである可能性が高いです。直ちに使用を中止し、AviUtlフォルダから削除されることを推奨します。


3.キャッシュフレーム数・最大解像度・最大フレーム数を必要最小限に設定
AviUtlのキャッシュフレーム数、及び最大解像度などを多く取りすぎると、正常に動作しないことがあります。
AviUtlを起動し、「ファイル」→「環境設定」→「システムの設定」で、



キャッシュフレーム数を多くても10フレーム程度、可能なら2~5フレーム程度に制限します。よって、デフォルトのまま使っている方には殆ど関係ありません。
ただ、キャッシュフレームを減らすと、編集の快適性が損なわれる可能性があります。
なおキャッシュフレームは最低「2」まで小さく出来るので、メモリを多く消費したくない方はキャッシュフレームを縮めてみるのも良いかもしれませんね。
また、編集している拡張編集の解像度や読み込んだ動画の解像度に、最大画像サイズを合わせてもやはりメモリ消費量は減少します。拡張編集の最大解像度を上げるだけだとあまりメモリ消費量は増えませんので、拡張編集を使っている方はそちらを引き上げてみるのも良いかと思われます。



また、こちらは効果が薄いですが、最大フレーム数も動画に合わせて減らすと、更にメモリ消費量が減少します。ただ、これに関しては微々たる効果ですので、どうしても…という時以外はいじらない方が無難です。

※キャッシュフレームを少なくすると特にエンコード速度などが低下しますし、プレビューも若干重くなります。その辺を気にされる方はエラーが出ない程度に増やしてみても良いかもしれません。これはあくまでもエラーを出さないための対策に過ぎませんので、性能低下をある程度無視しています。


4.Large Address Awareを有効にする
作者によるとあまり発生しないエラーのようですが、最近の編集の大容量化に伴う、AviUtlのデフォルト設定でのメモリ不足により、AviUtlの利用可能メモリ制限がデフォルトでは低い設定になっていることが原因で発生することもあります。
この設定を行うと、64bitOSでは最大2倍のメモリが使えるようになり、編集の幅を広げられます。32bitOSでは効果が無い、もしくはPCが非常に不安定になる可能性があります。
よってこの方法は、基本的に64bitOSでのみ実行して下さい。
32bitOSで実行される場合は、十分な知識を持ち、リスク把握が出来る方のみ行って下さい。
64bitOSである場合にも、最低でもメモリ4GB、推奨6GB以上のメモリを搭載したPCで実行することを推奨します。3GB以下のPCの場合にはオススメ出来ません。

AviUtlのメモリ空間を最大2倍まで利用出来るように「Large Address Aware」を「オン」に変更します。
まず、AviUtlを右クリックし「管理者として実行」で起動します。



その後、「ファイル」→「環境設定」→「システムの設定」で、
「Large Address Awareを有効にする」にチェックを入れます。



その後、「OK」を押してAviUtlを終了すれば、次回起動時からAviUtlがメモリを最大4GB使えるようになり、メモリ空間関連のエラーは激減すると思います。次回起動時以降、管理者権限で起動する必要はありません。
なお、管理者権限で起動しない場合、テェックを入れても次回の起動の際に無効化されてしまいます。

※管理者権限が無いアカウントなど、どうしても管理者権限起動が出来ない場合には…
SetLAA - スキマ産業
こちらを使うと、簡単に書き換えることが出来ます。ダブルクリックで起動した後、aviutl.exeをドラッグ&ドロップし、「LARGE_ADDRESS_AWAREを有効にする」をクリックします。「書き換えに成功しました」と表示されれば成功です。



※「LARGE_ADDRESS_AWAREを無効にする」と表示されている場合は既に有効化されていますのでそのまま「×」ボタンで終了して下さい。

※以下、少々技術的な話
AviUtlは32bitソフトであり、仮に64bitOSで起動したとしても、メモリは32bitの上限である「4GB」までしか使えません。またその上限も、32bitソフトではデフォルトでは32bitOSで使用することを前提に作られているため、32bitOSの仕様である「WindowsOSカーネルに2GB、ソフトに最大2GB」という制約が存在します(実際には、例え32bitOSに4GB積んでいても実認識が3.25GB程度なために、カーネル2GB・ソフト1.25GB程度の割り当てとなる)。

※32bitOSでは、とある方法を使うことで、この比率を「カーネル1GB・ソフト3GB」に変更出来ます。あまり推奨出来ませんが。

本題の64bitOSで32bitソフトを起動した場合ですが、その場合にも32bitOSの制約がつきまとうために、「メモリをどんなに積んでいても、ソフトは最大2GBまでしか使ってくれない」という制限が掛かり、せっかくの大容量メモリを活かしきれません。
これを回避する(本来は32bitOSでソフト3GBにOS側を変更した場合にソフト側も対応させるための機能として存在)ために、「Large Address Aware」というフラグが設定されています。このフラグを有効化すると「このソフトは最大で4GBまでのメモリを使えますよ」ということをOS側に示します。よって、このフラグを有効化すれば、32bitソフトでも64bitOSで使用すれば、そのソフトはメモリを最大4GB消費して、持てる最大性能を発揮出来るようになるわけです。
ただ、4GBそこらのメモリ容量では、最大限メモリ空間を占拠した場合に仮想メモリのスワップだらけとなってしまうので、筆者はメモリ6GB以上の搭載を推奨しています。

ここら辺の話は、以下のサイトの方が詳しいと思います。
メモリおよびアドレス空間の限界値

※蛇足
逆に言えば、Large Address Awareフラグをオンにする場合、メモリ4GB以上は必須ですが、同時に他のソフトを大量に起動させない限り、AviUtlをメインにする動画編集では、有効活用出来る可能性があるのは搭載メモリ8GBまでで、それ以上あっても大して意味無くなる可能性が極めて高いです。


5.メモリ最適化を行う
これだけエラーが起きやすいのは、AviUtlのメモリの使い方が悪いためだと思ったため、メモリ使用を最適化するソフトを導入して、AviUtlが無駄に食っているメモリを減らすor最適化することでAviUtl、ひいてはPC自体の安定性の向上に繋がる可能性があります。
ただ、メモリ最適化ソフトには効果があまり見られないものや、効果はあっても最適化時に重くなって使い勝手が悪かったりするのが殆どだと思います(偏見)。
今回紹介するソフトは、WindowsOSを作っているMicrosoft社純正のもので、また効果が比較的ある方ながらかなり軽量なので、設定次第ではメモリ最適化をしていることを忘れるくらいのものとなっています。筆者も導入し、実際に定期的にメモリ使用量が激減することを確認しています。興味のある方はこちらを参照して下さい。

タスクスケジューラを利用して、定期的にメモリを解放する - empty.exeによる高速な動作


※追記
これら以外にも、ntdll.dllをインストールすると解決するケースもあるなど、様々な原因が考えられます。この記事の方法を全て試しても解決しないようであれば、ネットサーフィンしてみるのも一考かと思います。

とりあえず、この記事で言いたかったことは…
・入力プラグイン「L-SMASH File Reader」の導入
・各種プラグインの最新版への更新
・キャッシュフレーム数・最大解像度・最大フレーム数を必要最小限に設定
・(Large Address Awareを有効にする)
・(メモリ最適化を行う)
たったこれだけの作業で、エラー発生頻度が激減するということです。
AviUtlで頻発するエラーに悩まされている方は、是非ともやってみて下さい。

勿論、これだけの対策をしてもエラーが出なくなる訳ではありません。
拡張編集のバックアップ機能やこまめな保存などは怠らないようにして下さい。
広告
他8件のコメントを表示
×
追記
AVI/AVI2 File Readerでもダメであれば、L-SMASH File Readerを最上位に配置することで読んでくれるかもしれません
18ヶ月前
×
1~3までやって治ったんですが、今度は音ズレが発生するようになりました。
どうしたら治りますか?
17ヶ月前
×
>>11
その動画、VFR(可変フレームレート)の可能性があります。
一度HandBrakeなどで変換するか、キャプチャし直すことで改善するかもしれません
17ヶ月前
×
本当にありがとうございます
解決しました!
うれしいです!
編集にてこずってやっとできたのにこれがでてしまい
このページをみて編集したらできました^^
本当にありがとうございました^^
17ヶ月前
×
非常に分かりやすく丁寧で、とても参考になりました。ありがとうございました。
16ヶ月前
×
探していたことが書いてありました。
とても助かります!!
16ヶ月前
×
メモリ8ギガのpcでメモリ不足とはどういうことかと思いましたが、解決しました!
ありがとうございます!
12ヶ月前
×
この問題の一番の原因は、ffdshowのようです。
私の場合、
スタートメニューの"ffdshow"の"ビデオデコーダーの設定"を開き、
設定画面の"DirectShow のコントロール"で「✔[ffdshowを使用しない]」にaviutl.exeを追加すると完全にエラーが取り除けました!
10ヶ月前
×
とてもわかりやすい解説ありがとうございます。
おかげで大変助かりました。
6ヶ月前
×
ゆっくり実況のEXOファイルを読み込んだらいつもは出てこない例外エラー(このページに書いてあるのと同じ)
が起きてこのページの手順通りにやっても何度も出てきます。
決まってiwinput(そんなような感じのウィンドウ)がロードしてエラーが発生します。
どうすればいいでしょうか?追加したプラグインはL-SMASH fire readarと拡張編集とx264gui_exです。
2ヶ月前
コメントを書く
コメントをするには、
ログインして下さい。