先日、コアラのマーチ振り機の動画をAviUtlで作成していたのですが、最後に"拡張x264出力(GUI)Ex"をする段階でハマってしまいました。
マニュアル通りにmp4ファイルを出力させようとすると、
auo [error]: 出力音声ファイルがみつかりません。NeroAacEnc での音声のエンコードに失敗しました。
auo [error]: 音声エンコードのコマンドラインは…
auo [error]: ".\exe_files\neroAacEnc.exe" -ignorelength -lc -br 128000 -if "-" -of "C:\...\test_audio.m4a"
といったエラーが出てしまいました。
ググってみると、環境を再構築しろとか書いてあったりして、構築の段階でうまくエンコードできることは確認しているのに・・・と思いつつ、半信半疑でAviUtl関連を全て再インストールしてみましたが、やはり状況は変わらず。
その構築段階のお試しエンコードでは、エンコード中にm4aファイルが生成されることは確認していました。エラーが出ているときは生成されていないので、BGMに使用したmp3ファイルか、もしくは動画の音声部分か、とにかく変換に失敗する原因を調べるために、下記のことを行いました。
- 拡張編集で、BGM以外のレイヤーを全て削除
- 拡張編集で、動画以外のレイヤーを全て削除
目論みでは、どちらかうまくいくはずです。ところが、結果はどちらとも上記のエラーが出てエンコード失敗。
そこで次に、
- 新規に編集プロジェクトを作成し、BGMのmp3のみ追加
- 新規に編集プロジェクトを作成し、動画のみ追加
不思議とこれは両方ともエンコードに成功しました。エンコードに成功しているため、環境や元のファイルが原因とは考えにくいです。
さらに試してみました。
- 既存の編集プロジェクトから、レイヤーを全て削除(何もない状態)
これはエンコードに失敗しました。
- (拡張編集から)新規の編集プロジェクトを作成、最終フレームを適当に設定し、何もない状態でエンコード
これは成功しました。
つまり、編集プロジェクトが壊れているか不整合が発生している(しかもAviUtlはそれを検知できない)可能性が高い、と推測するのが妥当なようです。なぜそうなってしまったのか不明ですが、とにかく対処法を考えることにしました。
プロジェクトファイルが壊れているということは、編集を一から全てやり直さなければならない、ということになります。動画編集の最後の段階まで来ているのに、さすがにそれは絶対にやりたくありませんでした。
結局のところプロジェクトファイルは、極端に言えば、オブジェクトをどこに置いてどうエフェクトかけて、ということが書かれているに過ぎません。その情報さえ新規プロジェクトに反映できれば、初めからやり直すことは回避できそうです。
長々と書いてしまいましたが、結局どうやったかと言えば、
- 既存のプロジェクトを読み込んだ状態で、「拡張編集 > ファイル > オブジェクトファイルのエクスポート」でexoファイルを作成
- 新規プロジェクトを作成し、「拡張編集 > ファイル > オブジェクトファイルのインポート」で先ほど保存したexoファイルを読み込み
これで、新規プロジェクトへ、既存のプロジェクトの状態を移行できたはずです。後はプロジェクトの保存を忘れずにしましょう。
上記のような音声エンコードのエラーが出て、レイヤーを全て削除してもエラーが残る場合は、この方法を一度お試しあれ。