拡張編集使用時に、Aviutl本体のほうに短い音声を読み込んでしまうと、そちらが優先されてこのエラーが発生することがあるとメールにて情報提供いただきました。ありがとうございました!
出力時には、いろいろなエラーが発生する可能性があって、ログにある程度エラーメッセージが出ているけど、中にはわかりににくかったり、区別しにくかったりするものもある。
web上を検索して、遭遇する方の多そうなエラーメッセージのうち、原因がわかっているものについて、なるべくエラーではまる方が減らせるように、わかりやすいメッセージを出せるよう調整した。
ダウンロード>>ソースはこちら
変更の詳細
エラーメッセージ1:
x264が予期せず途中終了しました。
x264に不正なパラメータ(オプション)が渡された可能性があります。x264が異常終了するエラーの汎用メッセージ。本当にパラメータが適切でないこともあるが、そうでないこともある。
パターン1-1: 環境依存文字 (ファイル)Aviutlはユニコード非対応のため、SJIS(CP932)非対応のいわゆる環境依存文字には対応していない。そのため、環境依存文字を含むファイル名で出力しようとするとエラーが発生する。
mp4 [error]: cannot open output file `F:\temp\sakura_op?.mp4'.
x264 [error]: could not open output file `F:\temp\sakura_op?.mp4'
auo [error]: x264が予期せず途中終了しました。x264に不正なパラメータ(オプション)が渡された可能性があります。? のところが問題の文字。この場合、明らかに「x264に不正なパラメータ(オプション)が渡された可能性があります」はエラーメッセージとしてはよろしくない。
x264guiEx 3.02では改良してこんな感じにした。
auo [error]: 映像の出力ファイル "F:\temp\sakura_op?.mp4" を開くことができません。
auo [error]: ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。
auo [error]: このエラーは、出力ファイル名に環境依存文字を含む場合に発生することがあります。
auo [error]: 該当文字は、"?"で表示されていますので該当文字を避けてファイル名で出力しなおしてください。
パターン1-2: 環境依存文字 (フォルダ)フォルダ名が環境依存文字を含む、という場合もある。この場合も同じエラーになっていた。
mp4 [error]: cannot open output file `F:\temp\てすと?\sakura_op.mp4'.
x264 [error]: could not open output file `F:\temp\てすと?\sakura_op.mp4'
auo [error]: x264が予期せず途中終了しました。x264に不正なパラメータ(オプション)が渡された可能性があります。x264guiEx 3.02ではフォルダ名の問題だと表示できるようになった。
auo [error]: 出力先フォルダを認識できないため、出力できません。
auo [error]: 出力ファイル名: "F:\temp\てすと?\sakura_op.mp4"
auo [error]: 出力先フォルダ: "F:\temp\てすと?"
auo [error]: このエラーは、上記出力先のフォルダ名に環境依存文字を含む場合に発生することがあります。
auo [error]: 該当文字は、"?"で表示されています。
auo [error]: 環境依存文字を含まないフォルダに出力先に変更して出力しなおしてください。
パターン1-3: アクセス権の問題アクセス権がない場所に出力しようとした場合にも同じようにエラーが起こる。特にWindows Vista以降、ユーザーが自由にファイルを置けない場所があって、こういうった場所に出力しようとしたときによく起こる。
mp4 [error]: cannot open output file `C:\sakura_op.mp4'.
x264 [error]: could not open output file `C:\sakura_op.mp4'
auo [error]: x264が予期せず途中終了しました。x264に不正なパラメータ(オプション)が渡された可能性があります。かなり気づくのは難しいエラーメッセージになってしまっているので、x264guiEx 3.02ではアクセス権の問題だと表示できるようにした。
auo [error]: 映像の出力ファイル "C:\sakura_op.mp4" を開くことができません。
auo [error]: アクセスが拒否されました。
auo [error]: このエラーは、アクセス権のないフォルダ、あるいはWindowsにより保護されたフォルダに
auo [error]: 出力しようとすると発生することがあります。
auo [error]: 出力先のフォルダを変更して出力しなおしてください。
auo [error]: なお、下記はWindowsにより保護されたフォルダですので、ここへの出力は避けてください。
auo [error]: 例: C: ドライブ直下
auo [error]: C:\Windows 以下
auo [error]: C:\ProgramData 以下
auo [error]: C:\Program Files (x86) 以下
auo [error]: など
パターン1-4: 空き容量の問題ドライブの空き容量が足りない場合もこんな感じで同じエラーが出ていた。
auo [info]: x264 options...
--crf 23 --frames 3501 --input-res 1280x720 --input-csp nv12 --fps 30/1 -o "D:\sakura_op.mp4" "-"
raw [info]: 1280x720p 0:0 @ 30/1 fps (cfr)
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
x264 [info]: profile High, level 3.1, 4:2:0, 8-bit
mp4 [error]: failed to append a video frame.x264 [info]: frame I:40 Avg QP:18.38 size: 42507
x264 [info]: frame P:739 Avg QP:22.12 size: 14793
x264 [info]: frame B:1350 Avg QP:25.07 size: 3449
x264 [info]: consecutive B-frames: 8.7% 8.4% 35.4% 47.5%
x264 [info]: mb I I16..4: 20.3% 67.1% 12.6%
x264 [info]: mb P I16..4: 6.2% 14.5% 1.2% P16..4: 33.0% 10.5% 5.9% 0.0% 0.0% skip:28.8%
x264 [info]: mb B I16..4: 0.8% 1.3% 0.1% B16..8: 32.5% 2.6% 0.4% direct: 2.1% skip:60.2% L0:41.6% L1:52.0% BI: 6.4%
x264 [info]: 8x8 transform intra:65.9% inter:78.9%
x264 [info]: coded y,uvDC,uvAC intra: 33.0% 46.6% 13.4% inter: 9.4% 14.3% 0.8%
x264 [info]: i16 v,h,dc,p: 41% 31% 9% 18%
x264 [info]: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 25% 24% 33% 3% 3% 3% 4% 3% 4%
x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 25% 19% 18% 6% 8% 8% 7% 6% 4%
x264 [info]: i8c dc,h,v,p: 56% 25% 16% 3%
x264 [info]: Weighted P-Frames: Y:19.4% UV:18.7%
x264 [info]: ref P L0: 68.6% 13.0% 13.2% 5.1% 0.1%
x264 [info]: ref B L0: 85.1% 12.6% 2.3%
x264 [info]: ref B L1: 96.9% 3.1%
x264 [info]: kb/s:1948.90
aborted at input frame 2194, output frame 2128
encoded 2128 frames, 309.21 fps, 1948.35 kb/s
auo [error]: x264が予期せず途中終了しました。x264に不正なパラメータ(オプション)が渡された可能性があります。本質的には、"failed to append a video frame."のところが原因でそこを見ればわかるのだが、「x264に不正なパラメータ~」と出るせいで逆にわかりにくくなってしまっている。
これをx264guiEx 3.02ではより直接的なメッセージに変更した。
auo [error]: x264が予期せず途中終了しました。
auo [error]: Dドライブの空き容量が残り 0.03 MBしかありません。
auo [error]: Dドライブの空き容量不足で失敗した可能性があります。
auo [error]: Dドライブの空きをつくり、再度実行してみてください。
エラーメッセージ 2.
mux後ファイルが見つかりませんでした。
muxは最終工程のため、いろいろなエラーが起こりやすい。
その中で、原因のはっきりしているものについて対策した。
auo [error]: mux後ファイルが見つかりませんでした。
auo [error]: L-SMASH muxer でのmuxに失敗しました。
auo [error]: muxのコマンドラインは…
auo [error]: ".\exe_files\muxer_x64.exe" --file-format m4v -i "F:\temp\sakura_op.1.mp4"?fps=30/1 --file-format m4a -i "F:\temp\sakura_op.1.tmp.wav" --optimize-pd -o "F:\temp\sakura_op.1_muxout.mp4"
L-SMASH muxer [error]: iTunes MP4 muxing mode
L-SMASH muxer [error]: Track 1: H.264 Advanced Video Coding
L-SMASH muxer [error]: Error: the input seems Uncompressed Audio, at present available only for QuickTime file format.
L-SMASH muxer [error]: Error: failed to open input files.Uncompressed Audio、ようはWAV出力はmp4コンテナに入れられない、というエラー。
同じパターンで、
"L-SMASH muxer [error]: [importer: Error]: failed to find the matched importer." というのもあって、mp4コンテナに対応していない音声エンコーダを選択した場合に発生する。
すこしだけわかりにくいのと、そもそも動画エンコード後にエラーを出すのではなくて、エンコード前にチェックするべき、ということで、x264guiEx 3.02では動画のエンコード開始前にチェックを行うようにした。
auo [error]: 音声エンコーダ WAV出力 は、mp4 形式での出力に対応していません。
auo [error]: AAC (ffmpeg) 等の他の音声エンコーダを選択して出力してください。
こんな感じで、いくつかのわかりにくいエラーメッセージを改良してみた。エラーではまる方が少なくなるとよいのだが…
最後に、現状原因や再現方法がわからないエラーを紹介。
原因や再現方法のわからないエラー
その1: 音声の長さが動画の長さと大きく異なるようです。Aviutlから渡された情報に基づいて計算される動画の秒数と音声の秒数が相当(50%以上)ずれている、という警告。音ズレなどの原因になるのだが、どうすれば発生するのかさっぱりわからない。
拡張編集の選択範囲等の問題という話もあるが、いまいち再現方法がわからない…。
その2: mux後ファイルが小さすぎます。auo [error]: mux後ファイルが小さすぎます。 muxに失敗したものと思われます。
L-SMASH muxer [error]: iTunes MP4 muxing mode
L-SMASH muxer [error]: Track 1: H.264 Advanced Video Coding
L-SMASH muxer [error]: Error: failed to get the last sample delta.先ほどのまったくmux後のファイルができないものとは異なり、一応mux処理は始まるがすぐエラー終了してしまうもの。エラーメッセージからは、mux時の映像ファイルの読み込みで失敗しているのがわかる。おそらくエンコード後(のはずの)映像ファイルが破損(上書き? 他のプログラムで開かれた?)されているなどしていると思う。
ただ、どうやったら起こるのか、というのがよくわからない。ログを載せてくれている方もログもみたが、動画のエンコードは正常終了しているみたいだった。
これも拡張編集の選択範囲等の問題というのを見かけたが、手元で適当に試した限りだと、短い選択範囲にしても特に問題は生じなかった。