x264guiEx 2.05
更新
・VC++2013に移行
・音声エンコードディレイをカットする機能を追加
・簡易インストーラの誤字を修正 (「リンク取得リンク」→「リンク取得」)
x264guiEx.auoを手動で更新する際の注意点
開発をVC++2012からVC++2013に移行しました。そのためVC++2013 runtimeが必要です。setupフォルダ内のmsvcr120.dll / msvcp120.dllをAviutlフォルダにコピーしてください。
・auo_setup(簡易インストーラ)を使用する場合は問題ありません。(自動的にランタイムdllがコピーされます)
音声エンコードディレイをカットできるように。
・qaac (AAC-LC)では--no-delayオプションを使用。
・neroaacenc/qaac/qtaacencでは、「音声の削除」「映像の追加」などにより相殺できる機能を追加した。

neroaacenc等でエンコードを行うと、音声側に一定の遅延が発生してしまう。(エンコーダの制限)
今回はこれを解消する機能を追加した。
このエンコードによる音声の遅延は、bitや周波数、チャンネルに関係なく一定らしく、
NeroAACEnc
AAC-LC= +2624 samples
HE-AAC= +4672 samples
HEv2= +5616 samples
Apple AAC (qaac / qtaac)
AAC-LC=+2112 samples
HE-AAC=+5184 samples
のようだ。まあSamplingRateが48000Hzで2624sample程度なら 2624sample / 48000(sample/sec) = 55ms程度なのでたいしたことはないのだけど、例えばSamplingRateが24kHzとか、あるいはHE-AACとかで遅延が大きくなってくいると音声が遅れているのが結構気になってくるかもしれない。
まず、最近のqaacのAAC-LCではエンコーダ側で対策してくれるようになっているので、今回からそのオプションを使うようにした(--no-delay)。
muken様にコメントを頂きましたように、--no-delayを使用すると最初の1024sampleが無音でない場合に先頭にノイズが入る場合があり、注意が必要です。
AACが音声フレーム(音声1フレーム=1024sample)をまたがって圧縮しており、本来であれば一つ前のフレームが存在するか、あるいは無音でないと正しくデコードできない事によるものです。
そこでx265guiEx 2.05v2では、qaacのAAC-LCについても「音声カット」「映像追加」のどちらかによる補正を選択できるようにしました。
今回、音声の遅れを打ち消すため、
(1). 先頭の音声を削除
(2). 映像を先頭に追加
のどちらかにより音声の遅れを打ち消す機能を追加した。方法が異なるだけで、どちらの方法でも音声の遅れを解消できる。
注意点としては、それぞれ副作用があって
(1) 先頭の音声を削除 → 動画の先頭の音が遅れのぶん(60~120ms)強制的に無音になってしまう
(2) 映像を先頭に追加 → 2~4フレーム程度映像が先頭に追加される
ということ。これは(edts等のmp4コンテナの機能を使わずに)ディレイを修正する上で仕方ないと思う。動画の先頭 60~120msがもともと無音であれば、(1)で問題ないだと思うのだけど、動画開始直後から音がある場合には(1)だとその音が消えてしまうため、(2)のほうを選んでくれたほうがいいかなと。
一応検証結果を。
検証方法
まずそれぞれの設定でエンコード。
オリジナルのwavをAviutlのwav出力から16bitモノラルで出力。
また、エンコードしたmp4をlwinput.auiでAviutlに読み込み、同様にAviutlのwav出力から16bitモノラルで出力。
で、このwavファイルをAudacityに放り込んで波形を確認した。

「オリジナル」の波形に対して、例えば「Nero AAC-LC」は少し波形に遅延が見られるが、2624sample分の遅れを補正した「Nero AAC-LC -2624s」では波形が「オリジナル」と揃っていることがわかる。その他のケースでも補正によって音声の遅延を相殺できていると思う。
…さて、問題はニコ動向けプロファイルとかでディレイカットをデフォルトにするかどうか…(いまは「補正なし」)。どうしよ。
※2014.03.15 18:07
x264guiEx 2.05v2、iniファイルの更新です。
・2.05にmp4box用の設定ファイルを入れ忘れていたのを修正
・qaacのAAC-LCについても--no-delayでなく、2112sample補正するか選べる形にした。
※エンコードディレイカット機能の使用にはx264guiEx.iniの更新も必要です。
ダウンロード>>
ダウンロード (ミラー) >>
Skydriveの調子がいまいちの時はミラー(dropbox)からどうぞ。同じものです。
x264guiExの導入>
その他…
1.
いつの間にかこのブログのカウンタが100万いってます…。見に来てくれた皆さん、ありがとうございます。
2.
x264afs、r2409+873に更新しました。
・VC++2013に移行
・音声エンコードディレイをカットする機能を追加
・簡易インストーラの誤字を修正 (「リンク取得リンク」→「リンク取得」)
x264guiEx.auoを手動で更新する際の注意点
開発をVC++2012からVC++2013に移行しました。そのためVC++2013 runtimeが必要です。setupフォルダ内のmsvcr120.dll / msvcp120.dllをAviutlフォルダにコピーしてください。
・auo_setup(簡易インストーラ)を使用する場合は問題ありません。(自動的にランタイムdllがコピーされます)
音声エンコードディレイをカットできるように。
・neroaacenc/qaac/qtaacencでは、「音声の削除」「映像の追加」などにより相殺できる機能を追加した。

neroaacenc等でエンコードを行うと、音声側に一定の遅延が発生してしまう。(エンコーダの制限)
今回はこれを解消する機能を追加した。
このエンコードによる音声の遅延は、bitや周波数、チャンネルに関係なく一定らしく、
NeroAACEnc
AAC-LC= +2624 samples
HE-AAC= +4672 samples
HEv2= +5616 samples
Apple AAC (qaac / qtaac)
AAC-LC=+2112 samples
HE-AAC=+5184 samples
のようだ。まあSamplingRateが48000Hzで2624sample程度なら 2624sample / 48000(sample/sec) = 55ms程度なのでたいしたことはないのだけど、例えばSamplingRateが24kHzとか、あるいはHE-AACとかで遅延が大きくなってくいると音声が遅れているのが結構気になってくるかもしれない。
muken様にコメントを頂きましたように、--no-delayを使用すると最初の1024sampleが無音でない場合に先頭にノイズが入る場合があり、注意が必要です。
AACが音声フレーム(音声1フレーム=1024sample)をまたがって圧縮しており、本来であれば一つ前のフレームが存在するか、あるいは無音でないと正しくデコードできない事によるものです。
そこでx265guiEx 2.05v2では、qaacのAAC-LCについても「音声カット」「映像追加」のどちらかによる補正を選択できるようにしました。
今回、音声の遅れを打ち消すため、
(1). 先頭の音声を削除
(2). 映像を先頭に追加
のどちらかにより音声の遅れを打ち消す機能を追加した。方法が異なるだけで、どちらの方法でも音声の遅れを解消できる。
注意点としては、それぞれ副作用があって
(1) 先頭の音声を削除 → 動画の先頭の音が遅れのぶん(60~120ms)強制的に無音になってしまう
(2) 映像を先頭に追加 → 2~4フレーム程度映像が先頭に追加される
ということ。これは(edts等のmp4コンテナの機能を使わずに)ディレイを修正する上で仕方ないと思う。動画の先頭 60~120msがもともと無音であれば、(1)で問題ないだと思うのだけど、動画開始直後から音がある場合には(1)だとその音が消えてしまうため、(2)のほうを選んでくれたほうがいいかなと。
一応検証結果を。
検証方法
まずそれぞれの設定でエンコード。
オリジナルのwavをAviutlのwav出力から16bitモノラルで出力。
また、エンコードしたmp4をlwinput.auiでAviutlに読み込み、同様にAviutlのwav出力から16bitモノラルで出力。
で、このwavファイルをAudacityに放り込んで波形を確認した。

「オリジナル」の波形に対して、例えば「Nero AAC-LC」は少し波形に遅延が見られるが、2624sample分の遅れを補正した「Nero AAC-LC -2624s」では波形が「オリジナル」と揃っていることがわかる。その他のケースでも補正によって音声の遅延を相殺できていると思う。
…さて、問題はニコ動向けプロファイルとかでディレイカットをデフォルトにするかどうか…(いまは「補正なし」)。どうしよ。
※2014.03.15 18:07
x264guiEx 2.05v2、iniファイルの更新です。
・2.05にmp4box用の設定ファイルを入れ忘れていたのを修正
・qaacのAAC-LCについても--no-delayでなく、2112sample補正するか選べる形にした。
※エンコードディレイカット機能の使用にはx264guiEx.iniの更新も必要です。
ダウンロード>>
ダウンロード (ミラー) >>
Skydriveの調子がいまいちの時はミラー(dropbox)からどうぞ。同じものです。
x264guiExの導入>
その他…
1.
いつの間にかこのブログのカウンタが100万いってます…。見に来てくれた皆さん、ありがとうございます。
2.
x264afs、r2409+873に更新しました。
スポンサーサイト