x264guiEx 3.04
3.00での不具合修正と、さらなるエラーメッセージの改善や対処方法の改善。
- 3.00から、cqm、tcfile-in等に渡すファイル名が相対パスに変換され、エラーとなってしまう場合があるのを修正。
ご指摘いただいた問題の修正。x264にはこれらのファイル名を絶対パスに変換して渡すように変更。
- 3.00から、fawが選択され、かつfawclのパスが指定されていない場合に、fawでエンコードされなかった問題を修正。
- エンコードするフレーム数が0の場合のエラーメッセージを追加。
エンコードするフレーム数を1フレームにしたい状態で、[設定] > [フレームレートの変更] で 1/3 などを選ぶと発生するらしい。
- ログの保存に失敗した場合にその原因を表示するように。
- 拡張編集使用時の映像と音声の長さが異なる場合の動作の改善。
「音声の長さが映像の長さと大きく異なるようです。」のエラー発生時の動作の改善。メールにて情報提供いただき、ありがとうございました。
拡張編集で音声を読み込ませたあと、異なるサンプリングレートの音声をAviutl本体に読み込ませると、音声のサンプル数はそのままに、サンプリングレートだけが変わってしまう。そうすると、音声の時間が本来の時間から変わってしまい、映像と音声の長さが違うという現象が発生する。
そこで、拡張編集使用時に映像と音声の長さにずれがある場合、サンプリングレートのずれの可能性がある場合は音声のサンプル数を修正するようにした。
ダウンロード>>
x264guiEx 3.xxの導入方法
最後のところ、なんのことかわかりにくいと思うので、続きに具体例で説明します。
どうも、Aviutlの拡張編集側の音声と本体側の音声読み込み機能が競合する場合があるようです。
まず、拡張編集で動画を読み込みます。この動画の音声(これを音声Aとします)が48kHz, 10秒だったとします。このとき、音声のサンプル数は48万(10秒 x 48k)です。

次に、誤って44.1kHz, 5秒の音声をAviutl本体側に読み込ませたとします(これを音声Bとします)。

この状態では、音声としてはこの音声Bが対象となっており、Aviutlのプレビューに5秒以降音声は表示されません。また、x264guiExで出力すると音声としては音声Bが出力されます。映像と音声の長さが食い違い(映像:10秒と音声B:5秒)が生じますし、拡張編集側の音声を出力したかった場合、意図しない音声が出力されることになります。

さらにこの状態から、拡張編集でシーン切り替えを行います。(例えば、Root→Scene1→Root)

こうすると、Aviutlのプレビューに拡張編集側の音声波形が戻ってきます。

プレビューで流れる音声も音声Aのものです。しかし、サンプリングレートは音声Bと同じく44.1kHzのままな一方、サンプル数は音声Aの48万のままです。そのため、この状態でx264guiExで出力しようとすると、サンプル数は48万のままのため、480000/44.1k=10.88秒の音声になってしまい、映像と音声の長さが食い違い、音声だけが長い動画が出力されます。
そこで、x264guiEx 3.04では、こうしたときに音声の長さを映像にそろえて出力するようにしました。今回の例だと、サンプリングレートが44.1kHzで10秒間なので、44万1000サンプルとして出力します。これで、映像と音声の長さの一致した自然な動画が出力できます。

ただ、これは緊急回避的な対処方法なので、こういう不思議な現象が起こるため、拡張編集使用時にはそもそもAviutl本体側に音声を読み込まないよう注意いただければと思います。
- 3.00から、cqm、tcfile-in等に渡すファイル名が相対パスに変換され、エラーとなってしまう場合があるのを修正。
ご指摘いただいた問題の修正。x264にはこれらのファイル名を絶対パスに変換して渡すように変更。
- 3.00から、fawが選択され、かつfawclのパスが指定されていない場合に、fawでエンコードされなかった問題を修正。
- エンコードするフレーム数が0の場合のエラーメッセージを追加。
エンコードするフレーム数を1フレームにしたい状態で、[設定] > [フレームレートの変更] で 1/3 などを選ぶと発生するらしい。
- ログの保存に失敗した場合にその原因を表示するように。
- 拡張編集使用時の映像と音声の長さが異なる場合の動作の改善。
「音声の長さが映像の長さと大きく異なるようです。」のエラー発生時の動作の改善。メールにて情報提供いただき、ありがとうございました。
拡張編集で音声を読み込ませたあと、異なるサンプリングレートの音声をAviutl本体に読み込ませると、音声のサンプル数はそのままに、サンプリングレートだけが変わってしまう。そうすると、音声の時間が本来の時間から変わってしまい、映像と音声の長さが違うという現象が発生する。
そこで、拡張編集使用時に映像と音声の長さにずれがある場合、サンプリングレートのずれの可能性がある場合は音声のサンプル数を修正するようにした。
ダウンロード>>
x264guiEx 3.xxの導入方法
最後のところ、なんのことかわかりにくいと思うので、続きに具体例で説明します。
どうも、Aviutlの拡張編集側の音声と本体側の音声読み込み機能が競合する場合があるようです。
まず、拡張編集で動画を読み込みます。この動画の音声(これを音声Aとします)が48kHz, 10秒だったとします。このとき、音声のサンプル数は48万(10秒 x 48k)です。

次に、誤って44.1kHz, 5秒の音声をAviutl本体側に読み込ませたとします(これを音声Bとします)。

この状態では、音声としてはこの音声Bが対象となっており、Aviutlのプレビューに5秒以降音声は表示されません。また、x264guiExで出力すると音声としては音声Bが出力されます。映像と音声の長さが食い違い(映像:10秒と音声B:5秒)が生じますし、拡張編集側の音声を出力したかった場合、意図しない音声が出力されることになります。

さらにこの状態から、拡張編集でシーン切り替えを行います。(例えば、Root→Scene1→Root)

こうすると、Aviutlのプレビューに拡張編集側の音声波形が戻ってきます。

プレビューで流れる音声も音声Aのものです。しかし、サンプリングレートは音声Bと同じく44.1kHzのままな一方、サンプル数は音声Aの48万のままです。そのため、この状態でx264guiExで出力しようとすると、サンプル数は48万のままのため、480000/44.1k=10.88秒の音声になってしまい、映像と音声の長さが食い違い、音声だけが長い動画が出力されます。
そこで、x264guiEx 3.04では、こうしたときに音声の長さを映像にそろえて出力するようにしました。今回の例だと、サンプリングレートが44.1kHzで10秒間なので、44万1000サンプルとして出力します。これで、映像と音声の長さの一致した自然な動画が出力できます。

ただ、これは緊急回避的な対処方法なので、こういう不思議な現象が起こるため、拡張編集使用時にはそもそもAviutl本体側に音声を読み込まないよう注意いただければと思います。
スポンサーサイト