x264guiEx 3.03

※ 2022/3/16 22:16 x264guiEx 3.03 更新
たびたびすみません。3.02の不具合修正とさらなる改良です。

- 3.02で、raw出力・音声のみ出力時にエラーが発生していたのを修正。
- 3.02で、auo_check_fileopen.exeが存在しない場合にエラー終了していたのを修正。

- 「音声の長さが映像の長さと大きく異なるようです。」のエラーについて、拡張編集使用時は異なるメッセージを表示するように。
拡張編集使用時に、Aviutl本体のほうに短い音声を読み込んでしまうと、そちらが優先されてこのエラーが発生することがあるとメールにて情報提供いただきました。ありがとうございました!



以下x264guiEx 3.02の更新
エラー発生時の問題点の改善。

・いくつかのわかりにくい・区別しにくいエラーメッセージをより分かりやすく改良。
・ログの保存に失敗すると、例外が発生していたのを修正。


出力時には、いろいろなエラーが発生する可能性があって、ログにある程度エラーメッセージが出ているけど、中にはわかりににくかったり、区別しにくかったりするものもある。

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時の映像ファイルの読み込みで失敗しているのがわかる。おそらくエンコード後(のはずの)映像ファイルが破損(上書き? 他のプログラムで開かれた?)されているなどしていると思う。

ただ、どうやったら起こるのか、というのがよくわからない。ログを載せてくれている方もログもみたが、動画のエンコードは正常終了しているみたいだった。

これも拡張編集の選択範囲等の問題というのを見かけたが、手元で適当に試した限りだと、短い選択範囲にしても特に問題は生じなかった。
スポンサーサイト



コメントの投稿

非公開コメント

エンコード時にエラー

このバージョンでエンコードをすると
「ファイルが開けません」
というエラーが出てしまいます。
前のバージョンに戻して同じ.aupファイルでは
問題なくエンコードできます。

Re: エンコード時にエラー

申し訳ありません。3.02で追加したexe_files\auo_check_fileopen.exeが存在しないとき、エラーとなってしまう不具合で、現在対策版を作成中です。

回避策として、x264guiEx 3.02のexe_files\auo_check_fileopen.exeをコピーいただけますでしょうか。

これは、アクセス権のチェックのために追加した64bitのサブプロセスで、出力ファイルを開くことができるかを確認するものです。Aviutl(32bitプロセス)内からでは、Windowsで保護されたフォルダにアクセスしようとした際、VirtualStoreに転送されてしまうため、実質的にチェックできないことから別途64bitサブプロセスを追加しています。

x264guiEx 3.03では、サブプロセスが存在しないことの警告に変更する予定です。

Re: エンコード時にエラー

jun1 様
問題と思われる個所を修正したx264guiEx 3.03に更新しました。お手数ですが、再度更新いただけますでしょうか。
https://github.com/rigaya/x264guiEx/releases

Re: エンコード時にエラー

このバージョンで動くことを確認しました。
ありがとうございます。

量子化マトリックスでエラー

おそらく3.xxで相対パスがデフォルトになったからだとは思いますが、
GUIからカスタム量子化マトリックスのファイルをセットすると、それがx264に相対パスで渡され、
ファイルが見つからないとのエラーが出てしまいます。
> x264 [error]: can't open file '.\path\to\cqmfile.cfg'
> x264 [error]: x264_encoder_open failed
量子化行列いじるような人は自分で絶対パスに直せるでしょうし、自分もそんなに使わない機能ではあるんですが笑、
気が向いたときにここだけでも絶対パスデフォルトにしておいてもらえるとありがたいです。

Re: 量子化マトリックスでエラー

ご指摘ありがとうございます。なるほど、カスタム量子化マトリックスのことを失念しておりました。

たしかに、問題が発生しますね。

おっしゃる通りカスタム量子化マトリックスのところだけ絶対パスデフォルトにすることで解決できると思います。

ただ、個人的にはなるべく「相対パスでパスを保存する」ことの例外はないほうがいいかなと思うので、x264へコマンドラインを渡すときに絶対パスに変換するような実装にして修正したいと思います。
プロフィール

rigaya

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先: rigaya34589@live.jp
github twitter

最新記事
最新コメント
カテゴリ
月別アーカイブ
カウンター
検索フォーム
いろいろ
公開中のAviutlプラグインとかのダウンロード

○Aviutl 出力プラグイン
x264guiEx 3.xx
- x264を使用したH264出力
- x264guiExの導入紹介動画>
- x264guiExの導入
- x264guiExのエラーと対処方法>
- x264.exeはこちら>

x265guiEx
- x265を使用したH.265/HEVC出力
- x265guiExの導入>
- x265.exeはこちら>

QSVEnc + QSVEncC
- QuickSyncVideoによるHWエンコード
- QSVEnc 導入/使用方法>
- QSVEncCオプション一覧>

NVEnc + NVEncC
- NVIDIAのNVEncによるHWエンコード
- NVEnc 導入/使用方法>
- NVEncCオプション一覧>

VCEEnc + VCEEncC
- AMDのVCE/VCNによるHWエンコード
- VCEEnc 導入/使用方法>
- VCEEncCオプション一覧>

svtAV1guiEx
- SVT-AV1によるAV1出力
- svtAV1guiExの導入>
- SVT-AV1単体はこちら>

ffmpegOut
- ffmpegを使用した出力
- ffmpegOutの導入>


○Aviutl フィルタプラグイン
自動フィールドシフト (ミラー)
- SSE2~AVX512による高速化版
- オリジナル: aji様

clfilters 
- OpenCLベースの複数のGPUフィルタ集
- 対応フィルタの一覧等はこちら

エッジレベル調整MT (ミラー)
- エッジレベル調整の並列化/高速化
- SSE2~AVX512対応
- オリジナル: まじぽか太郎様

バンディング低減MT (ミラー)
- SSE2~AVX512による高速化版
- オリジナル: まじぽか太郎様

PMD_MT
- SSE2~AVX512による高速化版
- オリジナル: スレ48≫989氏

透過性ロゴ (ミラー)
- SSE2~FMA3によるSIMD版
- オリジナル: MakKi氏

AviutlColor (ミラー)
- BT.2020nc向け色変換プラグイン
- BT.709/BT.601向けも同梱

○その他
x264afs (ミラー)
- x264のafs対応版

aui_indexer (ミラー使い方>)
- lsmashinput.aui/m2v.auiの
 インデックス事前・一括生成

auc_export (ミラー使い方>)
- Aviutl Controlの
 エクスポートプラグイン版
 エクスポートをコマンドから

aup_reseter (ミラー)
- aupプロジェクトファイルの
 終了フラグを一括リセット

CheckBitrate (ミラー, 使い方, ソース)
- ビットレート分布の分析(HEVC対応)

チャプター変換 (使い方>)
- nero/appleチャプター形式変換

エッジレベル調整 (avisynth)
- Avisynth用エッジレベル調整

メモリ・キャッシュ速度測定
- スレッド数を変えて測定

○ビルドしたものとか
L-SMASH (ミラー)
x264 (ミラー)
x265 (ミラー)
SVT-AV1 (ミラー)

○その他
サンプル動画
その他

○読みもの (ミラー)
Aviutl/x264guiExの色変換
動画関連ダウンロードリンク集
簡易インストーラの概要

○更新停止・公開終了
改造版x264gui
x264guiEx 0.xx
RSSリンクの表示
リンク
QRコード
QR